From 901aa644b4ae34a8567e8637b15ef985e3b70e1d Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Sat, 4 Feb 2023 10:08:11 -0800 Subject: [PATCH 01/19] Fixed typescript issues --- index.ts | 16 +++-- package-lock.json | 173 ++++++++++++++++++++++++++++++++++++---------- 2 files changed, 146 insertions(+), 43 deletions(-) diff --git a/index.ts b/index.ts index 40b91ed..273e87b 100644 --- a/index.ts +++ b/index.ts @@ -91,11 +91,15 @@ ${methods} ` let LOGGING_ENABLED = false; +type Result = { + struct: string; + typeHash: string; +} function generateCodeFrom (types) { - let results = []; + let results: Result[] = []; - const packetHashGetters = []; + const packetHashGetters: Array = []; Object.keys(types.types).forEach((typeName) => { const fields = types.types[typeName]; const typeHash = `bytes32 constant ${typeName.toUpperCase()}_TYPEHASH = keccak256("${encodeType(typeName, types.types)}");\n`; @@ -104,12 +108,10 @@ function generateCodeFrom (types) { results.push({ struct, typeHash }); }); - const uniqueGetters = [...new Set(packetHashGetters)]; - return { setup: results, packetHashGetters: [...new Set(packetHashGetters)] }; } -function generatePacketHashGetters (types, typeName, fields, packetHashGetters = []) { +function generatePacketHashGetters (types, typeName, fields, packetHashGetters: Array = []) { if (typeName.includes('[]')) { generateArrayPacketHashGetter(typeName, packetHashGetters); } else { @@ -179,8 +181,8 @@ function generateSolidity < > (typeDef: TypedMessage, shouldLog) { LOGGING_ENABLED = shouldLog; const { setup, packetHashGetters } = generateCodeFrom(typeDef); - const types = []; - const methods = []; + const types: string[] = []; + const methods: string[] = []; setup.forEach((type) => { types.push(type.struct); diff --git a/package-lock.json b/package-lock.json index ec39b36..587ad74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "eip712-codegen", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "4.0.3", + "version": "4.0.4", "license": "MIT", "dependencies": { "commander": "^9.2.0", @@ -16,12 +16,16 @@ }, "devDependencies": { "typescript": "^4.6.3" + }, + "peerDependencies": { + "signtypeddata-v5": "^5.0.1" } }, "node_modules/@types/bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "peer": true, "dependencies": { "@types/node": "*" } @@ -29,12 +33,14 @@ "node_modules/@types/node": { "version": "18.11.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "peer": true }, "node_modules/@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "peer": true, "dependencies": { "@types/node": "*" } @@ -43,6 +49,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "peer": true, "dependencies": { "@types/node": "*" } @@ -51,6 +58,7 @@ "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "peer": true, "dependencies": { "safe-buffer": "^5.0.1" } @@ -58,22 +66,26 @@ "node_modules/blakejs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "peer": true }, "node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true }, "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "peer": true }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "peer": true, "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -87,6 +99,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "peer": true, "dependencies": { "base-x": "^3.0.2" } @@ -95,6 +108,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "peer": true, "dependencies": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -104,12 +118,14 @@ "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "peer": true }, "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "peer": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -127,6 +143,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "peer": true, "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -139,6 +156,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "peer": true, "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -152,6 +170,7 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "peer": true, "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -166,6 +185,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -188,6 +208,7 @@ "version": "0.6.8", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "peer": true, "dependencies": { "bn.js": "^4.11.8", "ethereumjs-util": "^6.0.0" @@ -197,6 +218,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "peer": true, "dependencies": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -211,6 +233,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "peer": true, "dependencies": { "is-hex-prefixed": "1.0.0", "strip-hex-prefix": "1.0.0" @@ -224,6 +247,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "peer": true, "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -233,6 +257,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "peer": true, "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -246,6 +271,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -255,6 +281,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "peer": true, "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -264,12 +291,14 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true }, "node_modules/is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "peer": true, "engines": { "node": ">=6.5.0", "npm": ">=3" @@ -280,6 +309,7 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", "hasInstallScript": true, + "peer": true, "dependencies": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", @@ -293,6 +323,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "peer": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -302,22 +333,26 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "peer": true }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "peer": true }, "node_modules/node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "peer": true }, "node_modules/node-gyp-build": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "peer": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -328,6 +363,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "peer": true, "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -343,6 +379,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "peer": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -351,6 +388,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -364,6 +402,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "peer": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -373,6 +412,7 @@ "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "peer": true, "dependencies": { "bn.js": "^5.2.0" }, @@ -383,7 +423,8 @@ "node_modules/rlp/node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -402,18 +443,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "peer": true }, "node_modules/scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "peer": true }, "node_modules/secp256k1": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", "hasInstallScript": true, + "peer": true, "dependencies": { "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", @@ -426,12 +470,14 @@ "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "peer": true }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "peer": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -444,6 +490,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/signtypeddata-v5/-/signtypeddata-v5-5.0.1.tgz", "integrity": "sha512-0vSt2YRyKj7Ywmt9PiOE9Dsmo5n/hysO1gaP4VX1Qu6J9KalItIfq//47uVgmXDeNVzfbRBjou+awwUgC2a/uw==", + "peer": true, "dependencies": { "ethereumjs-abi": "^0.6.8", "ethereumjs-util": "^6.2.1", @@ -459,6 +506,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "peer": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -467,6 +515,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "peer": true, "dependencies": { "is-hex-prefixed": "1.0.0" }, @@ -478,12 +527,14 @@ "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "peer": true }, "node_modules/tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "peer": true }, "node_modules/typescript": { "version": "4.6.3", @@ -501,7 +552,8 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "peer": true } }, "dependencies": { @@ -509,6 +561,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "peer": true, "requires": { "@types/node": "*" } @@ -516,12 +569,14 @@ "@types/node": { "version": "18.11.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "peer": true }, "@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "peer": true, "requires": { "@types/node": "*" } @@ -530,6 +585,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "peer": true, "requires": { "@types/node": "*" } @@ -538,6 +594,7 @@ "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "peer": true, "requires": { "safe-buffer": "^5.0.1" } @@ -545,22 +602,26 @@ "blakejs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "peer": true }, "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "peer": true }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "peer": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -574,6 +635,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "peer": true, "requires": { "base-x": "^3.0.2" } @@ -582,6 +644,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "peer": true, "requires": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -591,12 +654,14 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "peer": true }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "peer": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -611,6 +676,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "peer": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -623,6 +689,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "peer": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -636,6 +703,7 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "peer": true, "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -650,6 +718,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -672,6 +741,7 @@ "version": "0.6.8", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "peer": true, "requires": { "bn.js": "^4.11.8", "ethereumjs-util": "^6.0.0" @@ -681,6 +751,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "peer": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -695,6 +766,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "peer": true, "requires": { "is-hex-prefixed": "1.0.0", "strip-hex-prefix": "1.0.0" @@ -704,6 +776,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "peer": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -713,6 +786,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "peer": true, "requires": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -723,6 +797,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -732,6 +807,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "peer": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -741,17 +817,20 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true }, "is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "peer": true }, "keccak": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "peer": true, "requires": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", @@ -762,6 +841,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "peer": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -771,27 +851,32 @@ "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "peer": true }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "peer": true }, "node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "peer": true }, "node-gyp-build": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "peer": true }, "pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "peer": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -804,6 +889,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "peer": true, "requires": { "safe-buffer": "^5.1.0" } @@ -812,6 +898,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "peer": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -822,6 +909,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "peer": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -831,6 +919,7 @@ "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "peer": true, "requires": { "bn.js": "^5.2.0" }, @@ -838,24 +927,28 @@ "bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true } } }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "peer": true }, "scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "peer": true }, "secp256k1": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "peer": true, "requires": { "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", @@ -865,12 +958,14 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "peer": true }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "peer": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -880,6 +975,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/signtypeddata-v5/-/signtypeddata-v5-5.0.1.tgz", "integrity": "sha512-0vSt2YRyKj7Ywmt9PiOE9Dsmo5n/hysO1gaP4VX1Qu6J9KalItIfq//47uVgmXDeNVzfbRBjou+awwUgC2a/uw==", + "peer": true, "requires": { "ethereumjs-abi": "^0.6.8", "ethereumjs-util": "^6.2.1", @@ -892,6 +988,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "peer": true, "requires": { "safe-buffer": "~5.2.0" } @@ -900,6 +997,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "peer": true, "requires": { "is-hex-prefixed": "1.0.0" } @@ -907,12 +1005,14 @@ "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "peer": true }, "tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "peer": true }, "typescript": { "version": "4.6.3", @@ -923,7 +1023,8 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "peer": true } } } From db22f34abfebf37cf75770724b8d0c610feabae5 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 21 Feb 2023 11:55:33 -0800 Subject: [PATCH 02/19] Add yargs for entrypoints --- README.md | 14 ++- cli.js | 32 ++++- index.ts | 2 +- package-lock.json | 309 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 3 +- 5 files changed, 349 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index b27bd83..462ef10 100644 --- a/README.md +++ b/README.md @@ -22,16 +22,20 @@ As a module, we are exporting typescript definition files, which can help you ge You point it at a typeDef file (defined as a CommonJS module, [as seen in sampleTypes.js](./sampleTypes.js)), and it then prints out some solidity to the console. You can then pipe it into a file. -Examples: +input: +```sh +npx eip712-codegen --input --entryPoints ... --log +``` +Example: ```sh -npx eip712-codegen ./sampleTypes.js > YourTypesFile.sol +npx eip712-codegen --input sampleTypes.js --entryPoints Type1 Type2 > YourTypesFile.sol ``` -If you're using [hardhat](hardhat.org/) and their [console.log](https://hardhat.org/hardhat-network/#console-log) feature, you can generate a logged version by adding `log`: +If you're using [hardhat](hardhat.org/) and their [console.log](https://hardhat.org/hardhat-network/#console-log) feature, you can generate a logged version by adding `--log`: ```sh -npx eip712-codegen ./sampleTypes.js log > YourTypesFile.sol +npx eip712-codegen --input sampleTypes.js --entryPoints Type1 Type2 --log > YourTypesFile.sol ``` You'll then need to import this typefile into your contract, and inherit from `EIP712Decoder`. @@ -68,6 +72,8 @@ You'll also need to include this one method that defines your DomainHash, which } ``` +IN PROGRESS: This section should be outdated soon. The `--entryPoints` flag is intended to replace this instruction, and once implemented will require simply calling signature verifying methods by name instead of doing any of this: + There's one more thing you have to do, this part will require the most thinking. You'll have to write the method that verifies the top-level signatures. I have not written codegen for this yet, because I don't know which types you want to use as your entry points, and there are some design decisions that are up to you here (in particular, *your entrypoint types are your user-facing security enforcement*, but here is a sample method for verifying a `SignedDelegation` as defined in our [sampleTypes.js](./sampleTypes) file: ```solidity diff --git a/cli.js b/cli.js index 02f70fc..a894c1d 100755 --- a/cli.js +++ b/cli.js @@ -1,11 +1,35 @@ #!/usr/bin/env node +const yargs = require('yargs'); const typesToCode = require('./index'); const path = require('path'); -const targetPath = path.join(process.cwd(), process.argv[2]); -const types = require(targetPath); -const shouldLog = process.argv[3] === 'log'; +const argv = yargs + .option('input', { + alias: 'i', + describe: 'Input file path', + demandOption: true, + type: 'string', + }) + .option('entryPoints', { + alias: 'e', + describe: 'Type names to be used as entry points', + demandOption: true, + array: true, + type: 'string', + }) + .option('log', { + alias: 'l', + describe: 'Enable logging', + type: 'boolean', + }) + .help() + .alias('help', 'h') + .argv; -console.log(typesToCode.generateSolidity(types, shouldLog)); +const targetPath = argv.input; +const types = require(targetPath); +const entryPoints = argv.entryPoints; +const shouldLog = argv.log; +console.log(typesToCode.generateSolidity(types, shouldLog, entryPoints)); diff --git a/index.ts b/index.ts index 273e87b..127caa8 100644 --- a/index.ts +++ b/index.ts @@ -178,7 +178,7 @@ function generateArrayPacketHashGetter (typeName, packetHashGetters) { function generateSolidity < T extends MessageTypes, -> (typeDef: TypedMessage, shouldLog) { +> (typeDef: TypedMessage, shouldLog, entryTypes: string[]) { LOGGING_ENABLED = shouldLog; const { setup, packetHashGetters } = generateCodeFrom(typeDef); const types: string[] = []; diff --git a/package-lock.json b/package-lock.json index 587ad74..635c738 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,8 @@ "712gen": "cli.js" }, "devDependencies": { - "typescript": "^4.6.3" + "typescript": "^4.6.3", + "yargs": "^17.7.1" }, "peerDependencies": { "signtypeddata-v5": "^5.0.1" @@ -54,6 +55,30 @@ "@types/node": "*" } }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -131,6 +156,38 @@ "safe-buffer": "^5.0.1" } }, + "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, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, "node_modules/commander": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", @@ -181,6 +238,21 @@ "minimalistic-crypto-utils": "^1.0.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==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", @@ -253,6 +325,15 @@ "safe-buffer": "^5.1.1" } }, + "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, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -294,6 +375,15 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "peer": true }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", @@ -398,6 +488,15 @@ "node": ">= 6" } }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -511,6 +610,32 @@ "safe-buffer": "~5.2.0" } }, + "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==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", @@ -554,6 +679,59 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "peer": true + }, + "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, + "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/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "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, + "engines": { + "node": ">=12" + } } }, "dependencies": { @@ -590,6 +768,21 @@ "@types/node": "*" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -667,6 +860,32 @@ "safe-buffer": "^5.0.1" } }, + "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" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, "commander": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", @@ -714,6 +933,18 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "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==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", @@ -782,6 +1013,12 @@ "safe-buffer": "^5.1.1" } }, + "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 + }, "hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -820,6 +1057,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "peer": true }, + "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==", + "dev": true + }, "is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", @@ -905,6 +1148,12 @@ "util-deprecate": "^1.0.1" } }, + "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 + }, "ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -993,6 +1242,26 @@ "safe-buffer": "~5.2.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==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", @@ -1025,6 +1294,44 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "peer": 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" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "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 } } } diff --git a/package.json b/package.json index bbd3cb3..8ea45f5 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "signtypeddata-v5": "^5.0.1" }, "devDependencies": { - "typescript": "^4.6.3" + "typescript": "^4.6.3", + "yargs": "^17.7.1" } } From 733df9cf9ff3b18670096a6bd2bbcf7e61b6d7c1 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 13:25:56 -0700 Subject: [PATCH 03/19] Implemented gpt-4 generated entrypoints These changes proposed by GPT-4 after providing this prompt: Below is a JavaScript module for generating Solidity code that constructs EIP-712 packet hashes. It has a function called `generateSolidity` which now takes an `entryTypes` array, which should be used to generate entrypoint methods, which expect the given TYPE to be wrapped in a signature struct like this: ``` struct signed${TYPE} = { signature: bytes, signer: address, message: ${TYPE} } ``` Here is the module. Please provide the changes that should be made: ``` const path = require('path'); const { encodeType, } = require('signtypeddata-v5').TypedDataUtils; export interface MessageTypeProperty { name: string; type: string; } export interface MessageTypes { EIP712Domain: MessageTypeProperty[]; [additionalProperties: string]: MessageTypeProperty[]; } /** * This is the message format used for `signTypeData`, for all versions * except `V1`. * * @template T - The custom types used by this message. * @property types - The custom types used by this message. * @property primaryType - The type of the message. * @property domain - Signing domain metadata. The signing domain is the intended context for the * signature (e.g. the dapp, protocol, etc. that it's intended for). This data is used to * construct the domain seperator of the message. * @property domain.name - The name of the signing domain. * @property domain.version - The current major version of the signing domain. * @property domain.chainId - The chain ID of the signing domain. * @property domain.verifyingContract - The address of the contract that can verify the signature. * @property domain.salt - A disambiguating salt for the protocol. * @property message - The message to be signed. */ export interface TypedMessage { types: T; primaryType: keyof T; domain: { name?: string; version?: string; chainId?: number; verifyingContract?: string; salt?: ArrayBuffer; }; message: Record; } const generateFile = (types, methods, log = false) => `pragma solidity ^0.8.13; // SPDX-License-Identifier: MIT ${log ? 'import "hardhat/console.log";' : ''} ${types} contract EIP712Decoder { /** * @dev Recover signer address from a message by using their signature * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. * @param sig bytes signature, the signature is generated using web3.eth.sign() */ function recover(bytes32 hash, bytes memory sig) internal pure returns (address) { bytes32 r; bytes32 s; uint8 v; // Check the signature length if (sig.length != 65) { return (address(0)); } // Divide the signature in r, s and v variables assembly { r := mload(add(sig, 32)) s := mload(add(sig, 64)) v := byte(0, mload(add(sig, 96))) } // Version of signature should be 27 or 28, but 0 and 1 are also possible versions if (v < 27) { v += 27; } // If the version is correct return the signer address if (v != 27 && v != 28) { return (address(0)); } else { return ecrecover(hash, v, r, s); } } ${methods} } ` let LOGGING_ENABLED = false; type Result = { struct: string; typeHash: string; } function generateCodeFrom (types) { let results: Result[] = []; const packetHashGetters: Array = []; Object.keys(types.types).forEach((typeName) => { const fields = types.types[typeName]; const typeHash = `bytes32 constant ${typeName.toUpperCase()}_TYPEHASH = keccak256("${encodeType(typeName, types.types)}");\n`; const struct = `struct ${typeName} {\n${fields.map((field) => { return ` ${field.type} ${field.name};\n`}).join('')}}\n` generatePacketHashGetters(types, typeName, fields, packetHashGetters); results.push({ struct, typeHash }); }); return { setup: results, packetHashGetters: [...new Set(packetHashGetters)] }; } function generatePacketHashGetters (types, typeName, fields, packetHashGetters: Array = []) { if (typeName.includes('[]')) { generateArrayPacketHashGetter(typeName, packetHashGetters); } else { packetHashGetters.push(` function ${packetHashGetterName(typeName)} (${typeName} memory _input) public pure returns (bytes32) { ${ LOGGING_ENABLED ? `console.log("${typeName} typehash: "); console.logBytes32(${typeName.toUpperCase()}_TYPEHASH);` : ''} bytes memory encoded = abi.encode( ${ typeName.toUpperCase() }_TYPEHASH, ${ fields.map(getEncodedValueFor).join(',\n ') } ); ${LOGGING_ENABLED ? `console.log("Encoded ${typeName}: "); console.logBytes(encoded);` : ''} return keccak256(encoded); }`); } fields.forEach((field) => { if (field.type.includes('[]')) { generateArrayPacketHashGetter(field.type, packetHashGetters); } }); return packetHashGetters; } function getEncodedValueFor (field) { const basicEncodableTypes = ['address', 'bool', 'bytes32', 'int', 'uint', 'uint256', 'string']; const hashedTypes = ['bytes']; if (basicEncodableTypes.includes(field.type)) { return `_input.${field.name}`; } if (hashedTypes.includes(field.type)) { return `keccak256(_input.${field.name})`; } return `${packetHashGetterName(field.type)}(_input.${field.name})`; } function packetHashGetterName (typeName) { if (typeName.includes('[]')) { return `GET_${typeName.substr(0, typeName.length - 2).toUpperCase()}_ARRAY_PACKETHASH`; } return `GET_${typeName.toUpperCase()}_PACKETHASH`; } function generateArrayPacketHashGetter (typeName, packetHashGetters) { packetHashGetters.push(` function ${packetHashGetterName(typeName)} (${typeName} memory _input) public pure returns (bytes32) { bytes memory encoded; for (uint i = 0; i < _input.length; i++) { encoded = bytes.concat( encoded, ${packetHashGetterName(typeName.substr(0, typeName.length - 2))}(_input[i]) ); } ${LOGGING_ENABLED ? `console.log("Encoded ${typeName}: "); console.logBytes(encoded);` : ''} bytes32 hash = keccak256(encoded); return hash; }`); } function generateSolidity < T extends MessageTypes, > (typeDef: TypedMessage, shouldLog, entryTypes: string[]) { LOGGING_ENABLED = shouldLog; const { setup, packetHashGetters } = generateCodeFrom(typeDef); const types: string[] = []; const methods: string[] = []; setup.forEach((type) => { types.push(type.struct); types.push(type.typeHash); }); packetHashGetters.forEach((getterLine) => { methods.push(getterLine); }); const newFileString = generateFile(types.join('\n'), methods.join('\n'), shouldLog); return newFileString; } module.exports = { generateCodeFrom, generateSolidity, } ``` --- index.ts | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/index.ts b/index.ts index 127caa8..927ca07 100644 --- a/index.ts +++ b/index.ts @@ -96,14 +96,27 @@ type Result = { typeHash: string; } -function generateCodeFrom (types) { +function generateCodeFrom(types, entryTypes) { let results: Result[] = []; const packetHashGetters: Array = []; Object.keys(types.types).forEach((typeName) => { const fields = types.types[typeName]; const typeHash = `bytes32 constant ${typeName.toUpperCase()}_TYPEHASH = keccak256("${encodeType(typeName, types.types)}");\n`; - const struct = `struct ${typeName} {\n${fields.map((field) => { return ` ${field.type} ${field.name};\n`}).join('')}}\n` + const struct = `struct ${typeName} {\n${fields.map((field) => { return ` ${field.type} ${field.name};\n`}).join('')}}\n`; + + // Generate signed${TYPE} struct for entryTypes + if (entryTypes.includes(typeName)) { + const signedStruct = ` +struct signed${typeName} { + bytes signature; + address signer; + ${typeName} message; +} +`; + results.push({ struct: signedStruct, typeHash: '' }); + } + generatePacketHashGetters(types, typeName, fields, packetHashGetters); results.push({ struct, typeHash }); }); @@ -180,7 +193,8 @@ function generateSolidity < T extends MessageTypes, > (typeDef: TypedMessage, shouldLog, entryTypes: string[]) { LOGGING_ENABLED = shouldLog; - const { setup, packetHashGetters } = generateCodeFrom(typeDef); + const { setup, packetHashGetters } = generateCodeFrom(typeDef, entryTypes); + const types: string[] = []; const methods: string[] = []; @@ -193,10 +207,25 @@ function generateSolidity < methods.push(getterLine); }); + // Generate entrypoint methods + const entrypointMethods = generateEntrypointMethods(entryTypes); + methods.push(entrypointMethods); + const newFileString = generateFile(types.join('\n'), methods.join('\n'), shouldLog); return newFileString; } +function generateEntrypointMethods(entryTypes) { + return entryTypes.map((entryType) => ` + function verifySigned${entryType}(signed${entryType} memory _input) public pure returns (bool) { + bytes32 packetHash = ${packetHashGetterName(entryType)}(_input.message); + bytes32 ethSignedMessageHash = getEthSignedMessageHash(packetHash); + address recoveredSigner = recover(ethSignedMessageHash, _input.signature); + return recoveredSigner == _input.signer; + } + `).join('\n'); +} + module.exports = { generateCodeFrom, generateSolidity, From 608b01ff52ed78a2c116946efb49153116fe9df0 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 13:32:41 -0700 Subject: [PATCH 04/19] Rebuild --- index.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index b93cf62..58ee34d 100644 --- a/index.js +++ b/index.js @@ -29,20 +29,24 @@ var path = require('path'); var encodeType = require('signtypeddata-v5').TypedDataUtils.encodeType; var generateFile = function (types, methods, log) { if (log === void 0) { log = false; } - return "pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n".concat(log ? 'import "hardhat/console.log";' : '', "\n\n").concat(types, "\n\ncontract EIP712Decoder {\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n //Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n// Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n").concat(methods, "\n\n}\n\n"); + return "pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n".concat(log ? 'import "hardhat/console.log";' : '', "\n\n").concat(types, "\n\ncontract EIP712Decoder {\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n").concat(methods, "\n\n}\n\n"); }; var LOGGING_ENABLED = false; -function generateCodeFrom(types) { +function generateCodeFrom(types, entryTypes) { var results = []; var packetHashGetters = []; Object.keys(types.types).forEach(function (typeName) { var fields = types.types[typeName]; var typeHash = "bytes32 constant ".concat(typeName.toUpperCase(), "_TYPEHASH = keccak256(\"").concat(encodeType(typeName, types.types), "\");\n"); var struct = "struct ".concat(typeName, " {\n").concat(fields.map(function (field) { return " ".concat(field.type, " ").concat(field.name, ";\n"); }).join(''), "}\n"); + // Generate signed${TYPE} struct for entryTypes + if (entryTypes.includes(typeName)) { + var signedStruct = "\nstruct signed".concat(typeName, " {\n bytes signature;\n address signer;\n ").concat(typeName, " message;\n}\n"); + results.push({ struct: signedStruct, typeHash: '' }); + } generatePacketHashGetters(types, typeName, fields, packetHashGetters); results.push({ struct: struct, typeHash: typeHash }); }); - var uniqueGetters = __spreadArray([], __read(new Set(packetHashGetters)), false); return { setup: results, packetHashGetters: __spreadArray([], __read(new Set(packetHashGetters)), false) }; } function generatePacketHashGetters(types, typeName, fields, packetHashGetters) { @@ -80,9 +84,9 @@ function packetHashGetterName(typeName) { function generateArrayPacketHashGetter(typeName, packetHashGetters) { packetHashGetters.push("\n function ".concat(packetHashGetterName(typeName), " (").concat(typeName, " memory _input) public pure returns (bytes32) {\n bytes memory encoded;\n for (uint i = 0; i < _input.length; i++) {\n encoded = bytes.concat(\n encoded,\n ").concat(packetHashGetterName(typeName.substr(0, typeName.length - 2)), "(_input[i])\n );\n }\n ").concat(LOGGING_ENABLED ? "console.log(\"Encoded ".concat(typeName, ": \");\n console.logBytes(encoded);") : '', "\n bytes32 hash = keccak256(encoded);\n return hash;\n }")); } -function generateSolidity(typeDef, shouldLog) { +function generateSolidity(typeDef, shouldLog, entryTypes) { LOGGING_ENABLED = shouldLog; - var _a = generateCodeFrom(typeDef), setup = _a.setup, packetHashGetters = _a.packetHashGetters; + var _a = generateCodeFrom(typeDef, entryTypes), setup = _a.setup, packetHashGetters = _a.packetHashGetters; var types = []; var methods = []; setup.forEach(function (type) { @@ -92,9 +96,15 @@ function generateSolidity(typeDef, shouldLog) { packetHashGetters.forEach(function (getterLine) { methods.push(getterLine); }); + // Generate entrypoint methods + var entrypointMethods = generateEntrypointMethods(entryTypes); + methods.push(entrypointMethods); var newFileString = generateFile(types.join('\n'), methods.join('\n'), shouldLog); return newFileString; } +function generateEntrypointMethods(entryTypes) { + return entryTypes.map(function (entryType) { return "\n function verifySigned".concat(entryType, "(signed").concat(entryType, " memory _input) public pure returns (bool) {\n bytes32 packetHash = ").concat(packetHashGetterName(entryType), "(_input.message);\n bytes32 ethSignedMessageHash = getEthSignedMessageHash(packetHash);\n address recoveredSigner = recover(ethSignedMessageHash, _input.signature);\n return recoveredSigner == _input.signer;\n }\n "); }).join('\n'); +} module.exports = { generateCodeFrom: generateCodeFrom, generateSolidity: generateSolidity From 1ab84d503f999bfe52c4bdf3db77628e5ce5155b Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 13:32:47 -0700 Subject: [PATCH 05/19] Tests by GPT-4 These changes proposed by GPT-4 in response to the following prompt: And now some JavaScript tests for validating these solidity functions, using `ganache` as a test chain: --- package-lock.json | 32225 ++++++++++++++++++++++++++++++++++++++++++-- package.json | 8 +- test.js | 80 + 3 files changed, 31385 insertions(+), 928 deletions(-) create mode 100644 test.js diff --git a/package-lock.json b/package-lock.json index 635c738..cfbc03f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,12 @@ "712gen": "cli.js" }, "devDependencies": { + "@openzeppelin/test-environment": "^0.1.9", + "@openzeppelin/test-helpers": "^0.5.16", + "chai": "^4.3.7", + "ethers": "^6.1.0", + "ganache-cli": "^6.12.2", + "mocha": "^10.2.0", "typescript": "^4.6.3", "yargs": "^17.7.1" }, @@ -22,245 +28,20113 @@ "signtypeddata-v5": "^5.0.1" } }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", - "peer": true + "node_modules/@adraffy/ens-normalize": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.8.9.tgz", + "integrity": "sha512-93OmGCV0vO8+JQ3FHG+gZk/MPHzzMPDRiCiFcCQNTCnHaaxsacO3ScTPGlu2wX2dOtgfalbchPcw1cOYYjHCYQ==", + "dev": true }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "peer": true, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, "dependencies": { - "@types/node": "*" + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "peer": true, + "node_modules/@ensdomains/address-encoder": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", + "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", + "dev": true, "dependencies": { - "@types/node": "*" + "bech32": "^1.1.3", + "blakejs": "^1.1.0", + "bn.js": "^4.11.8", + "bs58": "^4.0.1", + "crypto-addr-codec": "^0.1.7", + "nano-base32": "^1.0.1", + "ripemd160": "^2.0.2" } }, - "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==", + "node_modules/@ensdomains/ens": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", + "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", + "deprecated": "Please use @ensdomains/ens-contracts", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "bluebird": "^3.5.2", + "eth-ens-namehash": "^2.0.8", + "solc": "^0.4.20", + "testrpc": "0.0.1", + "web3-utils": "^1.0.0-beta.31" } }, - "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==", + "node_modules/@ensdomains/ensjs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", + "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@babel/runtime": "^7.4.4", + "@ensdomains/address-encoder": "^0.1.7", + "@ensdomains/ens": "0.4.5", + "@ensdomains/resolver": "0.2.4", + "content-hash": "^2.5.2", + "eth-ens-namehash": "^2.0.8", + "ethers": "^5.0.13", + "js-sha3": "^0.8.0" } }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "peer": true, + "node_modules/@ensdomains/ensjs/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "safe-buffer": "^5.0.1" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "peer": true - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "peer": true - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "peer": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "peer": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } + "node_modules/@ensdomains/resolver": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", + "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", + "deprecated": "Please use @ensdomains/ens-contracts", + "dev": true }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "peer": true, + "node_modules/@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dev": true, "dependencies": { - "base-x": "^3.0.2" + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" } }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "peer": true, + "node_modules/@ethereumjs/common/node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "@types/node": "*" } }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "peer": true + "node_modules/@ethereumjs/common/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "peer": true, + "node_modules/@ethereumjs/common/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "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==", + "node_modules/@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" } }, - "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==", + "node_modules/@ethereumjs/tx/node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "@types/node": "*" } }, - "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==", + "node_modules/@ethereumjs/tx/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, - "node_modules/commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, "engines": { - "node": "^12.20.0 || >=14" + "node": ">=10.0.0" } }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "peer": true, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "peer": true, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "peer": true, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, - "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==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", "dev": true, - "engines": { - "node": ">=6" + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bignumber/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", + "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@openzeppelin/contract-loader": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", + "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" + } + }, + "node_modules/@openzeppelin/contract-loader/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@openzeppelin/contract-loader/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@openzeppelin/contract-loader/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@openzeppelin/test-environment": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@openzeppelin/test-environment/-/test-environment-0.1.9.tgz", + "integrity": "sha512-QJ2TSRGbHMv4lrLChT7ghcoPGB3osXZvLXM3VqD8XhrJsYi/t5QJ8aHNYKa+A8EmCkH/rGZWgvRfhphVTFf0DA==", + "dev": true, + "dependencies": { + "@openzeppelin/contract-loader": "^0.6.1", + "@truffle/contract": "^4.0.38", + "ansi-colors": "^4.1.1", + "ethereumjs-wallet": "^0.6.3", + "exit-hook": "^2.2.0", + "find-up": "^4.1.0", + "fs-extra": "^9.0.1", + "ganache-core": "^2.11.2", + "lodash.merge": "^4.6.2", + "p-queue": "^6.2.0", + "semver": "^7.1.3", + "try-require": "^1.2.1", + "web3": "^1.3.0" + } + }, + "node_modules/@openzeppelin/test-helpers": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz", + "integrity": "sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==", + "dev": true, + "dependencies": { + "@openzeppelin/contract-loader": "^0.6.2", + "@truffle/contract": "^4.0.35", + "ansi-colors": "^3.2.3", + "chai": "^4.2.0", + "chai-bn": "^0.2.1", + "ethjs-abi": "^0.2.1", + "lodash.flatten": "^4.4.0", + "semver": "^5.6.0", + "web3": "^1.2.5", + "web3-utils": "^1.2.5" + } + }, + "node_modules/@openzeppelin/test-helpers/node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@openzeppelin/test-helpers/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@truffle/abi-utils": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.3.9.tgz", + "integrity": "sha512-G5dqgwRHx5zwlXjz3QT8OJVfB2cOqWwD6DwKso0KttUt/zejhCjnkKq72rSgyeLMkz7wBB9ERLOsupLBILM8MA==", + "dev": true, + "dependencies": { + "change-case": "3.0.2", + "fast-check": "3.1.1", + "web3-utils": "1.8.2" + } + }, + "node_modules/@truffle/blockchain-utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.6.tgz", + "integrity": "sha512-SldoNRIFSm3+HMBnSc2jFsu5TWDkCN4X6vL3wrd0t6DIeF7nD6EoPPjxwbFSoqCnkkRxMuZeL6sUx7UMJS/wSA==", + "dev": true + }, + "node_modules/@truffle/codec": { + "version": "0.14.16", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.16.tgz", + "integrity": "sha512-a9UY3n/FnkKN3Q4zOuMFOOcLWb80mdknj+voim4vvXYtJm1aAZQZE5sG9aLnMBTl4TiGLzUtfNDVYY7WgWgDag==", + "dev": true, + "dependencies": { + "@truffle/abi-utils": "^0.3.9", + "@truffle/compile-common": "^0.9.4", + "big.js": "^6.0.3", + "bn.js": "^5.1.3", + "cbor": "^5.2.0", + "debug": "^4.3.1", + "lodash": "^4.17.21", + "semver": "7.3.7", + "utf8": "^3.0.0", + "web3-utils": "1.8.2" + } + }, + "node_modules/@truffle/codec/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/@truffle/codec/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@truffle/compile-common": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.4.tgz", + "integrity": "sha512-mnqJB/hLiPHNf+WKwt/2MH6lv34xSG/SFCib7+ckAklutUqVLeFo8EwQxinuHNkU7LY0C+YgZXhK1WTCO5YRJQ==", + "dev": true, + "dependencies": { + "@truffle/error": "^0.2.0", + "colors": "1.4.0" + } + }, + "node_modules/@truffle/contract": { + "version": "4.6.17", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.17.tgz", + "integrity": "sha512-sIMam5Wqr9AEiqHfOcWGJGqTv8Qy+BT765PaNHUUT6JBAY+tpHM3FlQd2nM6zLJ8paR3SLDGIthkhCBH/KNgDA==", + "dev": true, + "dependencies": { + "@ensdomains/ensjs": "^2.1.0", + "@truffle/blockchain-utils": "^0.1.6", + "@truffle/contract-schema": "^3.4.13", + "@truffle/debug-utils": "^6.0.47", + "@truffle/error": "^0.2.0", + "@truffle/interface-adapter": "^0.5.30", + "bignumber.js": "^7.2.1", + "debug": "^4.3.1", + "ethers": "^4.0.32", + "web3": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-promievent": "1.8.2", + "web3-eth-abi": "1.8.2", + "web3-utils": "1.8.2" + } + }, + "node_modules/@truffle/contract-schema": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.13.tgz", + "integrity": "sha512-emG7upuryYFrsPDbHqeASPWXL824M1tinhQwSPG0phSoa3g+RX9fUNNN/VPmF3tSkXLWUMhRnb7ehxnaCuRbZg==", + "dev": true, + "dependencies": { + "ajv": "^6.10.0", + "debug": "^4.3.1" + } + }, + "node_modules/@truffle/contract/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@truffle/contract/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@truffle/contract/node_modules/js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/@truffle/contract/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/@truffle/debug-utils": { + "version": "6.0.47", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.47.tgz", + "integrity": "sha512-bUjdzLPdEKtoUCDzaXkrOoi+PbyAJlMBzGequBK8tirT7xL9bCP2Pd/WxvnmRd7AnfroxGNvXwVXWTItW5SMWQ==", + "dev": true, + "dependencies": { + "@truffle/codec": "^0.14.16", + "@trufflesuite/chromafi": "^3.0.0", + "bn.js": "^5.1.3", + "chalk": "^2.4.2", + "debug": "^4.3.1", + "highlightjs-solidity": "^2.0.6" + } + }, + "node_modules/@truffle/debug-utils/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/@truffle/error": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", + "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", + "dev": true + }, + "node_modules/@truffle/interface-adapter": { + "version": "0.5.30", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.30.tgz", + "integrity": "sha512-wyCcESeZJBkAfuSGU8GHCusIWDUDyQjJZMcyShv59ZTSAwQR7xx0+a0Q1LlS532G/pGFLYe2VzKSY1pRHRwgug==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.3", + "ethers": "^4.0.32", + "web3": "1.8.2" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/ethers/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/@truffle/interface-adapter/node_modules/js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "node_modules/@truffle/interface-adapter/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true + }, + "node_modules/@trufflesuite/chromafi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz", + "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0", + "chalk": "^2.3.2", + "cheerio": "^1.0.0-rc.2", + "detect-indent": "^5.0.0", + "highlight.js": "^10.4.1", + "lodash.merge": "^4.6.2", + "strip-ansi": "^4.0.0", + "strip-indent": "^2.0.0" + } + }, + "node_modules/@trufflesuite/chromafi/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@trufflesuite/chromafi/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aes-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", + "dev": true + }, + "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, + "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/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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, + "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==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true + }, + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", + "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bigjs" + } + }, + "node_modules/bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", + "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", + "dev": true, + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "dev": true, + "dependencies": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/cbor/node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-bn": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz", + "integrity": "sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==", + "dev": true, + "peerDependencies": { + "bn.js": "^4.11.0", + "chai": "^4.0.0" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/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, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/chalk/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 + }, + "node_modules/change-case": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", + "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", + "dev": true, + "dependencies": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/cids/node_modules/multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", + "dev": true + }, + "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, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "engines": { + "node": "^12.20.0 || >=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 + }, + "node_modules/constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", + "dev": true, + "dependencies": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "dev": true, + "dependencies": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "dev": true, + "dependencies": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.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==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "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, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", + "dev": true, + "dependencies": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + } + }, + "node_modules/eth-ens-namehash/node_modules/js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "dev": true + }, + "node_modules/eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/eth-lib/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/eth-lib/node_modules/ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "dev": true, + "dependencies": { + "js-sha3": "^0.8.0" + } + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-wallet": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz", + "integrity": "sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==", + "dev": true, + "dependencies": { + "aes-js": "^3.1.1", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^6.0.0", + "randombytes": "^2.0.6", + "safe-buffer": "^5.1.2", + "scryptsy": "^1.2.1", + "utf8": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "node_modules/ethers": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.1.0.tgz", + "integrity": "sha512-aC45YGbvgXt7Nses5WsdQwc1cUIrrQt32zeFShNW7ZT3RQCIHBnd4nmbE5sJmrp70uTdwkRHkr4cZr1D/YwFPg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.8.9", + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.7.1", + "aes-js": "4.0.0-beta.3", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/aes-js": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.3.tgz", + "integrity": "sha512-/xJX0/VTPcbc5xQE2VUP91y1xN8q/rDfhEzLm+vLc3hYvb5+qHCnpJRuFcrKn63zumK/sCwYYzhG8HP78JYSTA==", + "dev": true + }, + "node_modules/ethjs-abi": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", + "integrity": "sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==", + "dev": true, + "dependencies": { + "bn.js": "4.11.6", + "js-sha3": "0.5.5", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-abi/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + }, + "node_modules/ethjs-abi/node_modules/js-sha3": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", + "integrity": "sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==", + "dev": true + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dev": true, + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exit-hook": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", + "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-check": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", + "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", + "dev": true, + "dependencies": { + "pure-rand": "^5.0.1" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + }, + "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 + }, + "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 + }, + "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==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "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, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", + "dev": true + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "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 + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "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 + }, + "node_modules/ganache-cli": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz", + "integrity": "sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==", + "bundleDependencies": [ + "source-map-support", + "yargs", + "ethereumjs-util" + ], + "deprecated": "ganache-cli is now ganache; visit https://trfl.io/g7 for details", + "dev": true, + "dependencies": { + "ethereumjs-util": "6.2.1", + "source-map-support": "0.5.12", + "yargs": "13.2.4" + }, + "bin": { + "ganache-cli": "cli.js" + } + }, + "node_modules/ganache-cli/node_modules/@types/bn.js": { + "version": "4.11.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache-cli/node_modules/@types/node": { + "version": "14.11.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/@types/pbkdf2": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache-cli/node_modules/@types/secp256k1": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache-cli/node_modules/ansi-regex": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/base-x": { + "version": "3.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ganache-cli/node_modules/blakejs": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/ganache-cli/node_modules/bn.js": { + "version": "4.11.9", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/brorand": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/browserify-aes": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ganache-cli/node_modules/bs58": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/ganache-cli/node_modules/bs58check": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/ganache-cli/node_modules/buffer-from": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/buffer-xor": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/cipher-base": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ganache-cli/node_modules/cliui": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/ganache-cli/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ganache-cli/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/create-hash": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/ganache-cli/node_modules/create-hmac": { + "version": "1.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/ganache-cli/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/ganache-cli/node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-cli/node_modules/elliptic": { + "version": "6.5.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/ganache-cli/node_modules/emoji-regex": { + "version": "7.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/ganache-cli/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ganache-cli/node_modules/ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ganache-cli/node_modules/ethjs-util": { + "version": "0.1.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ganache-cli/node_modules/evp_bytestokey": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-cli/node_modules/execa": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/ganache-cli/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/hash-base": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/hash.js": { + "version": "1.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/ganache-cli/node_modules/hmac-drbg": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/ganache-cli/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/invert-kv": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/is-hex-prefixed": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ganache-cli/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-cli/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/keccak": { + "version": "3.0.1", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ganache-cli/node_modules/lcid": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/md5.js": { + "version": "1.3.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/ganache-cli/node_modules/mem": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/minimalistic-assert": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/node-addon-api": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/node-gyp-build": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/ganache-cli/node_modules/npm-run-path": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ganache-cli/node_modules/os-locale": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/p-defer": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/p-is-promise": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ganache-cli/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-cli/node_modules/pbkdf2": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/ganache-cli/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/ganache-cli/node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/ganache-cli/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ganache-cli/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-cli/node_modules/require-main-filename": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/ripemd160": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/ganache-cli/node_modules/rlp": { + "version": "2.2.6", + "dev": true, + "inBundle": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.1" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/ganache-cli/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/scrypt-js": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/secp256k1": { + "version": "4.0.2", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ganache-cli/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-cli/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/setimmediate": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/sha.js": { + "version": "2.4.11", + "dev": true, + "inBundle": true, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/ganache-cli/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-cli/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-cli/node_modules/signal-exit": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-cli/node_modules/source-map-support": { + "version": "0.5.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/ganache-cli/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/ganache-cli/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/strip-eof": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-cli/node_modules/strip-hex-prefix": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ganache-cli/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-cli/node_modules/which": { + "version": "1.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/ganache-cli/node_modules/which-module": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/wrap-ansi": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-cli/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/y18n": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/ganache-cli/node_modules/yargs": { + "version": "13.2.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" + } + }, + "node_modules/ganache-cli/node_modules/yargs-parser": { + "version": "13.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/ganache-core": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz", + "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==", + "bundleDependencies": [ + "keccak", + "node-addon-api", + "node-gyp-build" + ], + "deprecated": "ganache-core is now ganache; visit https://trfl.io/g7 for details", + "dev": true, + "hasShrinkwrap": true, + "dependencies": { + "abstract-leveldown": "3.0.0", + "async": "2.6.2", + "bip39": "2.5.0", + "cachedown": "1.0.0", + "clone": "2.1.2", + "debug": "3.2.6", + "encoding-down": "5.0.4", + "eth-sig-util": "3.0.0", + "ethereumjs-abi": "0.6.8", + "ethereumjs-account": "3.0.0", + "ethereumjs-block": "2.2.2", + "ethereumjs-common": "1.5.0", + "ethereumjs-tx": "2.1.2", + "ethereumjs-util": "6.2.1", + "ethereumjs-vm": "4.2.0", + "heap": "0.2.6", + "keccak": "3.0.1", + "level-sublevel": "6.6.4", + "levelup": "3.1.1", + "lodash": "4.17.20", + "lru-cache": "5.1.1", + "merkle-patricia-tree": "3.0.0", + "patch-package": "6.2.2", + "seedrandom": "3.0.1", + "source-map-support": "0.5.12", + "tmp": "0.1.0", + "web3-provider-engine": "14.2.1", + "websocket": "1.0.32" + }, + "engines": { + "node": ">=8.9.0" + }, + "optionalDependencies": { + "ethereumjs-wallet": "0.6.5", + "web3": "1.2.11" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/abi": { + "version": "5.0.0-beta.153", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/address": ">=5.0.0-beta.128", + "@ethersproject/bignumber": ">=5.0.0-beta.130", + "@ethersproject/bytes": ">=5.0.0-beta.129", + "@ethersproject/constants": ">=5.0.0-beta.128", + "@ethersproject/hash": ">=5.0.0-beta.128", + "@ethersproject/keccak256": ">=5.0.0-beta.127", + "@ethersproject/logger": ">=5.0.0-beta.129", + "@ethersproject/properties": ">=5.0.0-beta.131", + "@ethersproject/strings": ">=5.0.0-beta.130" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/abstract-provider": { + "version": "5.0.8", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/networks": "^5.0.7", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/transactions": "^5.0.9", + "@ethersproject/web": "^5.0.12" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/abstract-signer": { + "version": "5.0.10", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.0.8", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/address": { + "version": "5.0.9", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/rlp": "^5.0.7" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/base64": { + "version": "5.0.7", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.0.9" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/bignumber": { + "version": "5.0.13", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "bn.js": "^4.4.0" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/bytes": { + "version": "5.0.9", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/logger": "^5.0.8" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/constants": { + "version": "5.0.8", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bignumber": "^5.0.13" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/hash": { + "version": "5.0.10", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.0.10", + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/keccak256": { + "version": "5.0.7", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.0.9", + "js-sha3": "0.5.7" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/logger": { + "version": "5.0.8", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/@ethersproject/networks": { + "version": "5.0.7", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/logger": "^5.0.8" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/properties": { + "version": "5.0.7", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/logger": "^5.0.8" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/rlp": { + "version": "5.0.7", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/signing-key": { + "version": "5.0.8", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "elliptic": "6.5.3" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/strings": { + "version": "5.0.8", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/logger": "^5.0.8" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/transactions": { + "version": "5.0.9", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/rlp": "^5.0.7", + "@ethersproject/signing-key": "^5.0.8" + } + }, + "node_modules/ganache-core/node_modules/@ethersproject/web": { + "version": "5.0.12", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/base64": "^5.0.7", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" + } + }, + "node_modules/ganache-core/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/@types/bn.js": { + "version": "4.11.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache-core/node_modules/@types/node": { + "version": "14.14.20", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/@types/pbkdf2": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache-core/node_modules/@types/secp256k1": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ganache-core/node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ganache-core/node_modules/abstract-leveldown": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/accepts": { + "version": "1.3.7", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/aes-js": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/ajv": { + "version": "6.12.6", + "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/ganache-core/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/arr-diff": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/arr-flatten": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/arr-union": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/array-flatten": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/array-unique": { + "version": "0.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/asn1": { + "version": "0.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/ganache-core/node_modules/asn1.js": { + "version": "5.4.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ganache-core/node_modules/assert-plus": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ganache-core/node_modules/assign-symbols": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/async": { + "version": "2.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.11" + } + }, + "node_modules/ganache-core/node_modules/async-eventemitter": { + "version": "0.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.4.0" + } + }, + "node_modules/ganache-core/node_modules/async-limiter": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/atob": { + "version": "2.1.2", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/ganache-core/node_modules/aws-sign2": { + "version": "0.7.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/aws4": { + "version": "1.11.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-code-frame": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ganache-core/node_modules/babel-core": { + "version": "6.26.3", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/ganache-core/node_modules/babel-core/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/babel-core/node_modules/json5": { + "version": "0.5.1", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/ganache-core/node_modules/babel-core/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-core/node_modules/slash": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/babel-generator": { + "version": "6.26.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/babel-generator/node_modules/jsesc": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-call-delegate": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-define-map": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-function-name": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-get-function-arity": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-hoist-variables": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-optimise-call-expression": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-regex": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helper-replace-supers": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-helpers": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-messages": { + "version": "6.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-regenerator": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-transform": "^0.10.0" + } + }, + "node_modules/ganache-core/node_modules/babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/ganache-core/node_modules/babel-preset-env": { + "version": "1.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "node_modules/ganache-core/node_modules/babel-preset-env/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/babel-register": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "node_modules/ganache-core/node_modules/babel-register/node_modules/source-map-support": { + "version": "0.4.18", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/ganache-core/node_modules/babel-runtime": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/ganache-core/node_modules/babel-template": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/ganache-core/node_modules/babel-traverse": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/ganache-core/node_modules/babel-traverse/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/babel-traverse/node_modules/globals": { + "version": "9.18.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/babel-traverse/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/babel-types": { + "version": "6.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/ganache-core/node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/babelify": { + "version": "7.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" + } + }, + "node_modules/ganache-core/node_modules/babylon": { + "version": "6.18.0", + "dev": true, + "license": "MIT", + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/ganache-core/node_modules/backoff": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/balanced-match": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/base": { + "version": "0.11.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/base-x": { + "version": "3.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ganache-core/node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "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/ganache-core/node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/ganache-core/node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "dev": true, + "license": "Unlicense" + }, + "node_modules/ganache-core/node_modules/bignumber.js": { + "version": "9.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/bip39": { + "version": "2.5.0", + "dev": true, + "license": "ISC", + "dependencies": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } + }, + "node_modules/ganache-core/node_modules/blakejs": { + "version": "1.1.0", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/ganache-core/node_modules/bluebird": { + "version": "3.7.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/bn.js": { + "version": "4.11.9", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/body-parser": { + "version": "1.19.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ganache-core/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/ganache-core/node_modules/brorand": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/browserify-aes": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ganache-core/node_modules/browserify-cipher": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/browserify-des": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/ganache-core/node_modules/browserify-rsa": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/ganache-core/node_modules/browserify-rsa/node_modules/bn.js": { + "version": "5.1.3", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/browserify-sign": { + "version": "4.2.1", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/ganache-core/node_modules/browserify-sign/node_modules/bn.js": { + "version": "5.1.3", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ganache-core/node_modules/browserslist": { + "version": "3.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/ganache-core/node_modules/bs58": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/ganache-core/node_modules/bs58check": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/ganache-core/node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "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.1.13" + } + }, + "node_modules/ganache-core/node_modules/buffer-from": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/buffer-to-arraybuffer": { + "version": "0.0.5", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/buffer-xor": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/bufferutil": { + "version": "4.0.3", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/ganache-core/node_modules/bytes": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/bytewise": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" + } + }, + "node_modules/ganache-core/node_modules/bytewise-core": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "typewise-core": "^1.2" + } + }, + "node_modules/ganache-core/node_modules/cache-base": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/cacheable-request": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ganache-core/node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ganache-core/node_modules/cachedown": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "^2.4.1", + "lru-cache": "^3.2.0" + } + }, + "node_modules/ganache-core/node_modules/cachedown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/cachedown/node_modules/lru-cache": { + "version": "3.2.0", + "dev": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/caniuse-lite": { + "version": "1.0.30001174", + "dev": true, + "license": "CC-BY-4.0" + }, + "node_modules/ganache-core/node_modules/caseless": { + "version": "0.12.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/ganache-core/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/ganache-core/node_modules/checkpoint-store": { + "version": "1.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "functional-red-black-tree": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/chownr": { + "version": "1.1.4", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/ganache-core/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/cids": { + "version": "0.7.5", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ganache-core/node_modules/cids/node_modules/multicodec": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/cipher-base": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ganache-core/node_modules/class-is": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/class-utils": { + "version": "0.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/clone": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ganache-core/node_modules/clone-response": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/collection-visit": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ganache-core/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/component-emitter": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/concat-stream": { + "version": "1.6.2", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/ganache-core/node_modules/content-disposition": { + "version": "0.5.3", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/content-hash": { + "version": "2.5.2", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "node_modules/ganache-core/node_modules/content-type": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/convert-source-map": { + "version": "1.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ganache-core/node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/cookie": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/cookie-signature": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/cookiejar": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/copy-descriptor": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/core-js": { + "version": "2.6.12", + "dev": true, + "hasInstallScript": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/core-js-pure": { + "version": "3.8.2", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/ganache-core/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/cors": { + "version": "2.8.5", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ganache-core/node_modules/create-ecdh": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/ganache-core/node_modules/create-hash": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/ganache-core/node_modules/create-hmac": { + "version": "1.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/ganache-core/node_modules/cross-fetch": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" + } + }, + "node_modules/ganache-core/node_modules/crypto-browserify": { + "version": "3.12.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/d": { + "version": "1.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/dashdash": { + "version": "1.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/ganache-core/node_modules/debug": { + "version": "3.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/ganache-core/node_modules/decode-uri-component": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/ganache-core/node_modules/decompress-response": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/deep-equal": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/defer-to-connect": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/deferred-leveldown": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~5.0.0", + "inherits": "^2.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/deferred-leveldown/node_modules/abstract-leveldown": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/define-properties": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ganache-core/node_modules/define-property": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/defined": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ganache-core/node_modules/depd": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/des.js": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/destroy": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/detect-indent": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/diffie-hellman": { + "version": "5.0.3", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/ganache-core/node_modules/dom-walk": { + "version": "0.1.2", + "dev": true + }, + "node_modules/ganache-core/node_modules/dotignore": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.4" + }, + "bin": { + "ignored": "bin/ignored" + } + }, + "node_modules/ganache-core/node_modules/duplexer3": { + "version": "0.1.4", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ganache-core/node_modules/ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ganache-core/node_modules/ee-first": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/electron-to-chromium": { + "version": "1.3.636", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/elliptic": { + "version": "6.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/encodeurl": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/ganache-core/node_modules/encoding-down": { + "version": "5.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/encoding-down/node_modules/abstract-leveldown": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/ganache-core/node_modules/errno": { + "version": "0.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/ganache-core/node_modules/es-abstract": { + "version": "1.18.0-next.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/es-to-primitive": { + "version": "1.2.1", + "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/ganache-core/node_modules/es5-ext": { + "version": "0.10.53", + "dev": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/ganache-core/node_modules/es6-iterator": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/ganache-core/node_modules/es6-symbol": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/ganache-core/node_modules/escape-html": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ganache-core/node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/etag": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/eth-block-tracker": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "eth-query": "^2.1.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.3", + "ethjs-util": "^0.1.3", + "json-rpc-engine": "^3.6.0", + "pify": "^2.3.0", + "tape": "^4.6.3" + } + }, + "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/eth-ens-namehash": { + "version": "2.0.8", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-infura": { + "version": "3.2.1", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-fetch": "^2.1.1", + "eth-json-rpc-middleware": "^1.5.0", + "json-rpc-engine": "^3.4.0", + "json-rpc-error": "^2.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware": { + "version": "1.6.0", + "dev": true, + "license": "ISC", + "dependencies": { + "async": "^2.5.0", + "eth-query": "^2.1.2", + "eth-tx-summary": "^3.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.1.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^3.6.0", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "tape": "^4.6.3" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-account": { + "version": "2.0.5", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block": { + "version": "1.7.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block/node_modules/ethereum-common": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm": { + "version": "2.6.0", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/isarray": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-codec": { + "version": "7.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-errors": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws": { + "version": "0.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "dev": true, + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/levelup": { + "version": "1.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ltgt": { + "version": "2.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/object-keys": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/semver": { + "version": "5.4.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-lib": { + "version": "0.1.29", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/ganache-core/node_modules/eth-query": { + "version": "2.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/ganache-core/node_modules/eth-sig-util": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "buffer": "^5.2.1", + "elliptic": "^6.4.0", + "ethereumjs-abi": "0.6.5", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.0", + "tweetnacl-util": "^0.15.0" + } + }, + "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi": { + "version": "0.6.5", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.10.0", + "ethereumjs-util": "^4.3.0" + } + }, + "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "4.5.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.8.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary": { + "version": "3.2.4", + "dev": true, + "license": "ISC", + "dependencies": { + "async": "^2.1.2", + "clone": "^2.0.0", + "concat-stream": "^1.5.1", + "end-of-stream": "^1.1.0", + "eth-query": "^2.0.2", + "ethereumjs-block": "^1.4.1", + "ethereumjs-tx": "^1.1.1", + "ethereumjs-util": "^5.0.1", + "ethereumjs-vm": "^2.6.0", + "through2": "^2.0.3" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-account": { + "version": "2.0.5", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block": { + "version": "1.7.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block/node_modules/ethereum-common": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm": { + "version": "2.6.0", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/isarray": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-codec": { + "version": "7.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-errors": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws": { + "version": "0.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "dev": true, + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/levelup": { + "version": "1.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ltgt": { + "version": "2.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/object-keys": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/semver": { + "version": "5.4.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethashjs": { + "version": "0.0.8", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.1.2", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.0.2", + "miller-rabin": "^4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethashjs/node_modules/bn.js": { + "version": "5.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethashjs/node_modules/buffer-xor": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethashjs/node_modules/ethereumjs-util": { + "version": "7.0.7", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereum-bloom-filters": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "js-sha3": "^0.8.0" + } + }, + "node_modules/ganache-core/node_modules/ethereum-bloom-filters/node_modules/js-sha3": { + "version": "0.8.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/ethereum-common": { + "version": "0.0.18", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-abi": { + "version": "0.6.8", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-account": { + "version": "3.0.0", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-util": "^6.0.0", + "rlp": "^2.2.1", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block": { + "version": "2.2.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/isarray": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-codec": { + "version": "7.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-errors": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws": { + "version": "0.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "dev": true, + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/levelup": { + "version": "1.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ltgt": { + "version": "2.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/object-keys": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/semver": { + "version": "5.4.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-blockchain": { + "version": "4.0.4", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.6.1", + "ethashjs": "~0.0.7", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.1.0", + "flow-stoplight": "^1.0.0", + "level-mem": "^3.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.2", + "semaphore": "^1.1.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-common": { + "version": "1.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm": { + "version": "4.2.0", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/isarray": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-codec": { + "version": "7.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-errors": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws": { + "version": "0.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "dev": true, + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/levelup": { + "version": "1.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/ltgt": { + "version": "2.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/object-keys": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/semver": { + "version": "5.4.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ethereumjs-wallet": { + "version": "0.6.5", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "aes-js": "^3.1.1", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^6.0.0", + "randombytes": "^2.0.6", + "safe-buffer": "^5.1.2", + "scryptsy": "^1.2.1", + "utf8": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "node_modules/ganache-core/node_modules/ethjs-unit": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ganache-core/node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/ethjs-util": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ganache-core/node_modules/eventemitter3": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/events": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/ganache-core/node_modules/evp_bytestokey": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/express": { + "version": "4.17.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/ganache-core/node_modules/express/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/express/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/express/node_modules/qs": { + "version": "6.7.0", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ganache-core/node_modules/express/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/ext": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ganache-core/node_modules/ext/node_modules/type": { + "version": "2.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/extend": { + "version": "3.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/extend-shallow": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/extglob": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/extsprintf": { + "version": "1.3.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/fake-merkle-patricia-tree": { + "version": "1.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "checkpoint-store": "^1.1.0" + } + }, + "node_modules/ganache-core/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/fetch-ponyfill": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "~1.7.1" + } + }, + "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/node-fetch": { + "version": "1.7.3", + "dev": true, + "license": "MIT", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/finalhandler": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root": { + "version": "1.2.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "fs-extra": "^4.0.3", + "micromatch": "^3.1.4" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fs-extra": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-extendable": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/micromatch": { + "version": "3.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/to-regex-range": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/flow-stoplight": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/ganache-core/node_modules/for-in": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/forever-agent": { + "version": "0.6.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/form-data": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/ganache-core/node_modules/forwarded": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/fragment-cache": { + "version": "0.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/fresh": { + "version": "0.5.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/fs-extra": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/ganache-core/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/get-intrinsic": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/get-stream": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ganache-core/node_modules/get-value": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/getpass": { + "version": "0.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/glob": { + "version": "7.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/global": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/ganache-core/node_modules/got": { + "version": "9.6.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ganache-core/node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/graceful-fs": { + "version": "4.2.4", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/har-schema": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/har-validator": { + "version": "5.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/ganache-core/node_modules/has-ansi": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/has-symbol-support-x": { + "version": "1.4.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/has-symbols": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/has-value": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/has-values": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/has-values/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/hash-base": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ganache-core/node_modules/hash.js": { + "version": "1.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/heap": { + "version": "0.2.6", + "dev": true + }, + "node_modules/ganache-core/node_modules/hmac-drbg": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/home-or-tmp": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/http-cache-semantics": { + "version": "4.1.0", + "dev": true, + "license": "BSD-2-Clause", + "optional": true + }, + "node_modules/ganache-core/node_modules/http-errors": { + "version": "1.7.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/ganache-core/node_modules/http-https": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/ganache-core/node_modules/http-signature": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/ganache-core/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/idna-uts46-hx": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "punycode": "2.1.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ganache-core/node_modules/idna-uts46-hx/node_modules/punycode": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "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/ganache-core/node_modules/immediate": { + "version": "3.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/ganache-core/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/invariant": { + "version": "2.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/ipaddr.js": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ganache-core/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/is-arguments": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-callable": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-ci": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/ganache-core/node_modules/is-data-descriptor": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/is-date-object": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-descriptor": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/is-extendable": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/is-finite": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ganache-core/node_modules/is-fn": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/is-function": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/is-hex-prefixed": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ganache-core/node_modules/is-negative-zero": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-object": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-plain-obj": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/is-plain-object": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/is-regex": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-retry-allowed": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/is-symbol": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/is-windows": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/isobject": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/isstream": { + "version": "0.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/isurl": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ganache-core/node_modules/js-sha3": { + "version": "0.5.7", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/jsbn": { + "version": "0.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/json-buffer": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/json-rpc-engine": { + "version": "3.8.0", + "dev": true, + "license": "ISC", + "dependencies": { + "async": "^2.0.1", + "babel-preset-env": "^1.7.0", + "babelify": "^7.3.0", + "json-rpc-error": "^2.0.0", + "promise-to-callback": "^1.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/json-rpc-error": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1" + } + }, + "node_modules/ganache-core/node_modules/json-rpc-random-id": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/json-schema": { + "version": "0.2.3", + "dev": true + }, + "node_modules/ganache-core/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/json-stable-stringify": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/ganache-core/node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/ganache-core/node_modules/jsonify": { + "version": "0.0.0", + "dev": true, + "license": "Public Domain" + }, + "node_modules/ganache-core/node_modules/jsprim": { + "version": "1.4.1", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/ganache-core/node_modules/keccak": { + "version": "3.0.1", + "dev": true, + "hasInstallScript": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ganache-core/node_modules/keyv": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/ganache-core/node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/klaw-sync": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11" + } + }, + "node_modules/ganache-core/node_modules/level-codec": { + "version": "9.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/level-errors": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/level-iterator-stream": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.5", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/level-mem": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "level-packager": "~4.0.0", + "memdown": "~3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/level-mem/node_modules/abstract-leveldown": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/level-mem/node_modules/ltgt": { + "version": "2.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/level-mem/node_modules/memdown": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/level-mem/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/level-packager": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/level-post": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ltgt": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/level-sublevel": { + "version": "6.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "bytewise": "~1.1.0", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "level-iterator-stream": "^2.0.3", + "ltgt": "~2.1.1", + "pull-defer": "^0.2.2", + "pull-level": "^2.0.3", + "pull-stream": "^3.6.8", + "typewiselite": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/level-ws": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.8", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/levelup": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/levelup/node_modules/level-iterator-stream": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/lodash": { + "version": "4.17.20", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/looper": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/loose-envify": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/ganache-core/node_modules/lowercase-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ganache-core/node_modules/ltgt": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/map-cache": { + "version": "0.2.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/map-visit": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/md5.js": { + "version": "1.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/ganache-core/node_modules/media-typer": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/merge-descriptors": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/merkle-patricia-tree": { + "version": "3.0.0", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.6.1", + "ethereumjs-util": "^5.2.0", + "level-mem": "^3.0.1", + "level-ws": "^1.0.0", + "readable-stream": "^3.0.6", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ganache-core/node_modules/methods": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/miller-rabin": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/ganache-core/node_modules/mime": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/mime-db": { + "version": "1.45.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/mime-types": { + "version": "2.1.28", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.45.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/mimic-response": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/min-document": { + "version": "2.19.0", + "dev": true, + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/ganache-core/node_modules/minimalistic-assert": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/minimist": { + "version": "1.2.5", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/minizlib": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/ganache-core/node_modules/minizlib/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/ganache-core/node_modules/mixin-deep": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/mkdirp": { + "version": "0.5.5", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ganache-core/node_modules/mkdirp-promise": { + "version": "5.0.1", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "mkdirp": "*" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/mock-fs": { + "version": "4.13.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/multibase": { + "version": "0.6.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "node_modules/ganache-core/node_modules/multicodec": { + "version": "0.5.7", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "varint": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/multihashes": { + "version": "0.4.21", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/multihashes/node_modules/multibase": { + "version": "0.7.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "node_modules/ganache-core/node_modules/nano-json-stream-parser": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/nanomatch": { + "version": "1.2.13", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/negotiator": { + "version": "0.6.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/next-tick": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/node-addon-api": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/node-fetch": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/ganache-core/node_modules/node-gyp-build": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/ganache-core/node_modules/normalize-url": { + "version": "4.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ganache-core/node_modules/number-to-bn": { + "version": "1.7.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ganache-core/node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/oauth-sign": { + "version": "0.9.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object-copy": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object-inspect": { + "version": "1.9.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/object-is": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ganache-core/node_modules/object-visit": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/object.assign": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/object.getownpropertydescriptors": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/object.pick": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/oboe": { + "version": "2.1.4", + "dev": true, + "license": "BSD", + "optional": true, + "dependencies": { + "http-https": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/on-finished": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ganache-core/node_modules/os-homedir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/p-cancelable": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/p-timeout": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/p-timeout/node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/parse-asn1": { + "version": "5.1.6", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/parse-headers": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/parseurl": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/pascalcase": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/patch-package": { + "version": "6.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "find-yarn-workspace-root": "^1.2.1", + "fs-extra": "^7.0.1", + "is-ci": "^2.0.0", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.0", + "rimraf": "^2.6.3", + "semver": "^5.6.0", + "slash": "^2.0.0", + "tmp": "^0.0.33" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "npm": ">5" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/ganache-core/node_modules/patch-package/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/ganache-core/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/path-parse": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/path-to-regexp": { + "version": "0.1.7", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/pbkdf2": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/ganache-core/node_modules/performance-now": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/posix-character-classes": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/precond": { + "version": "0.2.3", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/prepend-http": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/private": { + "version": "0.1.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/process": { + "version": "0.11.10", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/ganache-core/node_modules/process-nextick-args": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/promise-to-callback": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/proxy-addr": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ganache-core/node_modules/prr": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pseudomap": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/psl": { + "version": "1.8.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/public-encrypt": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/ganache-core/node_modules/pull-cat": { + "version": "1.1.11", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pull-defer": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pull-level": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "level-post": "^1.0.7", + "pull-cat": "^1.1.9", + "pull-live": "^1.0.1", + "pull-pushable": "^2.0.0", + "pull-stream": "^3.4.0", + "pull-window": "^2.1.4", + "stream-to-pull-stream": "^1.7.1" + } + }, + "node_modules/ganache-core/node_modules/pull-live": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "pull-cat": "^1.1.9", + "pull-stream": "^3.4.0" + } + }, + "node_modules/ganache-core/node_modules/pull-pushable": { + "version": "2.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pull-stream": { + "version": "3.6.14", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/pull-window": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "looper": "^2.0.0" + } + }, + "node_modules/ganache-core/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/ganache-core/node_modules/punycode": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/qs": { + "version": "6.5.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ganache-core/node_modules/query-string": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/ganache-core/node_modules/randomfill": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/ganache-core/node_modules/range-parser": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/raw-body": { + "version": "2.4.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/readable-stream": { + "version": "2.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/ganache-core/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/regenerate": { + "version": "1.4.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/regenerator-runtime": { + "version": "0.11.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/regenerator-transform": { + "version": "0.10.1", + "dev": true, + "license": "BSD", + "dependencies": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "node_modules/ganache-core/node_modules/regex-not": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/regexp.prototype.flags/node_modules/es-abstract": { + "version": "1.17.7", + "dev": true, + "license": "MIT", + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/regexpu-core": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/ganache-core/node_modules/regjsgen": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/regjsparser": { + "version": "0.1.5", + "dev": true, + "license": "BSD", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/ganache-core/node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/ganache-core/node_modules/repeat-element": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/repeat-string": { + "version": "1.6.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/ganache-core/node_modules/repeating": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/request": { + "version": "2.88.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ganache-core/node_modules/resolve-url": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/responselike": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/resumer": { + "version": "0.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "~2.3.4" + } + }, + "node_modules/ganache-core/node_modules/ret": { + "version": "0.1.15", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/ganache-core/node_modules/rimraf": { + "version": "2.6.3", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ganache-core/node_modules/ripemd160": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/ganache-core/node_modules/rlp": { + "version": "2.2.6", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.1" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/ganache-core/node_modules/rustbn.js": { + "version": "0.2.0", + "dev": true, + "license": "(MIT OR Apache-2.0)" + }, + "node_modules/ganache-core/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "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/ganache-core/node_modules/safe-event-emitter": { + "version": "1.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "events": "^3.0.0" + } + }, + "node_modules/ganache-core/node_modules/safe-regex": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/ganache-core/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/scrypt-js": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/scryptsy": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pbkdf2": "^3.0.3" + } + }, + "node_modules/ganache-core/node_modules/secp256k1": { + "version": "4.0.2", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ganache-core/node_modules/seedrandom": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/semaphore": { + "version": "1.1.0", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ganache-core/node_modules/send": { + "version": "0.17.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ganache-core/node_modules/send/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/send/node_modules/ms": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/serve-static": { + "version": "1.14.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ganache-core/node_modules/servify": { + "version": "0.1.12", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/set-immediate-shim": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/set-value": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/setimmediate": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/setprototypeof": { + "version": "1.1.1", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/ganache-core/node_modules/sha.js": { + "version": "2.4.11", + "dev": true, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/ganache-core/node_modules/simple-concat": { + "version": "1.0.1", + "dev": true, + "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", + "optional": true + }, + "node_modules/ganache-core/node_modules/simple-get": { + "version": "2.8.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon": { + "version": "0.8.2", + "dev": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon-node": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon-util": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/source-map": { + "version": "0.5.7", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/source-map-resolve": { + "version": "0.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/ganache-core/node_modules/source-map-support": { + "version": "0.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/ganache-core/node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/source-map-url": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/split-string": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/sshpk": { + "version": "1.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "dev": true, + "license": "Unlicense" + }, + "node_modules/ganache-core/node_modules/static-extend": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/statuses": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/stream-to-pull-stream": { + "version": "1.7.3", + "dev": true, + "license": "MIT", + "dependencies": { + "looper": "^3.0.0", + "pull-stream": "^3.2.3" + } + }, + "node_modules/ganache-core/node_modules/stream-to-pull-stream/node_modules/looper": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/strict-uri-encode": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ganache-core/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/string.prototype.trim": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/string.prototype.trimend": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/string.prototype.trimstart": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/strip-hex-prefix": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ganache-core/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/swarm-js": { + "version": "0.1.40", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + } + }, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/fs-extra": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/got": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/p-cancelable": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/prepend-http": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/swarm-js/node_modules/url-parse-lax": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/tape": { + "version": "4.13.3", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + }, + "bin": { + "tape": "bin/tape" + } + }, + "node_modules/ganache-core/node_modules/tape/node_modules/glob": { + "version": "7.1.6", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ganache-core/node_modules/tape/node_modules/is-regex": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/tape/node_modules/object-inspect": { + "version": "1.7.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/tape/node_modules/resolve": { + "version": "1.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/tar": { + "version": "4.4.13", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/ganache-core/node_modules/tar/node_modules/fs-minipass": { + "version": "1.2.7", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/ganache-core/node_modules/tar/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/ganache-core/node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/ganache-core/node_modules/timed-out": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/tmp": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/to-object-path": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/to-object-path/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/to-readable-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ganache-core/node_modules/to-regex": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/toidentifier": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ganache-core/node_modules/tough-cookie": { + "version": "2.5.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ganache-core/node_modules/trim-right": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/tunnel-agent": { + "version": "0.6.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ganache-core/node_modules/tweetnacl": { + "version": "1.0.3", + "dev": true, + "license": "Unlicense" + }, + "node_modules/ganache-core/node_modules/tweetnacl-util": { + "version": "0.15.1", + "dev": true, + "license": "Unlicense" + }, + "node_modules/ganache-core/node_modules/type": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/type-is": { + "version": "1.6.18", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ganache-core/node_modules/typedarray": { + "version": "0.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/ganache-core/node_modules/typewise": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "typewise-core": "^1.2.0" + } + }, + "node_modules/ganache-core/node_modules/typewise-core": { + "version": "1.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/typewiselite": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/ultron": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/underscore": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/union-value": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/ganache-core/node_modules/unorm": { + "version": "1.6.0", + "dev": true, + "license": "MIT or GPL-2.0", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/ganache-core/node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/unset-value": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/ganache-core/node_modules/urix": { + "version": "0.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/url-parse-lax": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ganache-core/node_modules/url-set-query": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/url-to-options": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ganache-core/node_modules/use": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ganache-core/node_modules/utf-8-validate": { + "version": "5.0.4", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/ganache-core/node_modules/utf8": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/util.promisify": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ganache-core/node_modules/utils-merge": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/ganache-core/node_modules/uuid": { + "version": "3.4.0", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/ganache-core/node_modules/varint": { + "version": "5.0.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/vary": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ganache-core/node_modules/verror": { + "version": "1.10.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/ganache-core/node_modules/web3": { + "version": "1.2.11", + "dev": true, + "hasInstallScript": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "web3-bzz": "1.2.11", + "web3-core": "1.2.11", + "web3-eth": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-shh": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-bzz": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.9.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-bzz/node_modules/@types/node": { + "version": "12.19.12", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/web3-core": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-requestmanager": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-core-helpers": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-core-method": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-core-promievent": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-core-requestmanager": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-providers-http": "1.2.11", + "web3-providers-ipc": "1.2.11", + "web3-providers-ws": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-core-subscriptions": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-core/node_modules/@types/node": { + "version": "12.19.12", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/web3-eth": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-accounts": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-eth-ens": "1.2.11", + "web3-eth-iban": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-abi": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "@ethersproject/abi": "5.0.0-beta.153", + "underscore": "1.9.1", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-accounts": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/eth-lib": { + "version": "0.2.8", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-contract": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "@types/bn.js": "^4.11.5", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-ens": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-iban": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "bn.js": "^4.11.9", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-personal": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-eth-personal/node_modules/@types/node": { + "version": "12.19.12", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/web3-net": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine": { + "version": "14.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^3.0.0", + "eth-json-rpc-infura": "^3.1.0", + "eth-sig-util": "3.0.0", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.6.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/eth-sig-util": { + "version": "1.4.2", + "dev": true, + "license": "ISC", + "dependencies": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-account": { + "version": "2.0.5", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block": { + "version": "1.7.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block/node_modules/ethereum-common": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-tx": { + "version": "1.3.7", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm": { + "version": "2.6.0", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { + "version": "2.2.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { + "version": "2.1.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/isarray": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-codec": { + "version": "7.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-errors": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream/node_modules/readable-stream": { + "version": "1.1.14", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws": { + "version": "0.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/readable-stream": { + "version": "1.0.34", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/xtend": { + "version": "2.1.2", + "dev": true, + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/levelup": { + "version": "1.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ltgt": { + "version": "2.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown/node_modules/abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "~4.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/object-keys": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/semver": { + "version": "5.4.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ws": { + "version": "5.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-providers-http": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "web3-core-helpers": "1.2.11", + "xhr2-cookies": "1.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-providers-ipc": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-providers-ws": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "websocket": "^1.0.31" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-shh": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-net": "1.2.11" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-utils": { + "version": "1.2.11", + "dev": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ganache-core/node_modules/web3-utils/node_modules/eth-lib": { + "version": "0.2.8", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/ganache-core/node_modules/websocket": { + "version": "1.0.32", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ganache-core/node_modules/websocket/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ganache-core/node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/whatwg-fetch": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/ganache-core/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/ganache-core/node_modules/ws": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "node_modules/ganache-core/node_modules/ws/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ganache-core/node_modules/xhr": { + "version": "2.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/ganache-core/node_modules/xhr-request": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "node_modules/ganache-core/node_modules/xhr-request-promise": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "xhr-request": "^1.1.0" + } + }, + "node_modules/ganache-core/node_modules/xhr2-cookies": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "cookiejar": "^2.1.1" + } + }, + "node_modules/ganache-core/node_modules/xtend": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/ganache-core/node_modules/yaeti": { + "version": "0.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/ganache-core/node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "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, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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, + "engines": { + "node": ">=4" + } + }, + "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, + "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, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/highlightjs-solidity": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz", + "integrity": "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "dev": true, + "dependencies": { + "punycode": "2.1.0" + }, + "engines": { + "node": ">=4.0.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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "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, + "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==" + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "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-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "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-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", + "dev": true, + "dependencies": { + "upper-case": "^1.1.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "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==", + "dev": true + }, + "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, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "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 + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "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 + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/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, + "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/log-symbols/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true + }, + "node_modules/lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.2" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dev": true, + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/mkdirp": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.5.tgz", + "integrity": "sha512-jbjfql+shJtAPrFoKxHOXip4xS+kul9W3OzfzzrqueWK2QMGon2bFH2opl6W9EagBThjEz+iysyi/swOoVfB/w==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", + "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", + "dev": true, + "dependencies": { + "mkdirp": "*" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/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, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/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, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/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 + }, + "node_modules/mocha/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, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/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, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", + "dev": true + }, + "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 + }, + "node_modules/multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "node_modules/multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "varint": "^5.0.0" + } + }, + "node_modules/multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + } + }, + "node_modules/multihashes/node_modules/multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "node_modules/nano-base32": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz", + "integrity": "sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw==", + "dev": true + }, + "node_modules/nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "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-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "dev": true, + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", + "dev": true, + "dependencies": { + "http-https": "^1.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "dev": true + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", + "dev": true, + "dependencies": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "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, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "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 + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", + "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/responselike/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/rlp/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha512-aldIRgMozSJ/Gl6K6qmJZysRP82lz83Wb42vl4PWN8SaLFHIaOzLPc9nUUW2jQN88CuGm5q5HefJ9jZ3nWSmTw==", + "dev": true, + "dependencies": { + "pbkdf2": "^3.0.3" + } + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/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 + }, + "node_modules/sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "dev": true, + "dependencies": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "dev": true, + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/sha3/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "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, + "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/signtypeddata-v5": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/signtypeddata-v5/-/signtypeddata-v5-5.0.1.tgz", + "integrity": "sha512-0vSt2YRyKj7Ywmt9PiOE9Dsmo5n/hysO1gaP4VX1Qu6J9KalItIfq//47uVgmXDeNVzfbRBjou+awwUgC2a/uw==", + "peer": true, + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", + "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", + "dev": true, + "dependencies": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-get/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/solc": { + "version": "0.4.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", + "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==", + "dev": true, + "dependencies": { + "fs-extra": "^0.30.0", + "memorystream": "^0.3.1", + "require-from-string": "^1.1.0", + "semver": "^5.3.0", + "yargs": "^4.7.1" + }, + "bin": { + "solcjs": "solcjs" + } + }, + "node_modules/solc/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/solc/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/solc/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/solc/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solc/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/solc/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/solc/node_modules/yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", + "dev": true, + "dependencies": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + } + }, + "node_modules/solc/node_modules/yargs-parser": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", + "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, + "node_modules/swarm-js": { + "version": "0.1.42", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", + "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^11.8.5", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + } + }, + "node_modules/swarm-js/node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/swarm-js/node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/swarm-js/node_modules/fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/swarm-js/node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/swarm-js/node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/swarm-js/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/swarm-js/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/swarm-js/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/swarm-js/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/testrpc": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", + "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==", + "deprecated": "testrpc has been renamed to ganache-cli, please use this package from now on.", + "dev": true + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tough-cookie/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/try-require": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/try-require/-/try-require-1.2.1.tgz", + "integrity": "sha512-aMzrGUIA/R2LwUgvsOusx+GTy8ERyNjpBzbWgS1Qx4oTFlXCMxY3PyyXbPE1pvrvK/CXpO+BBREEqrTkNroC+A==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "peer": true + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "peer": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true + }, + "node_modules/upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", + "dev": true, + "dependencies": { + "upper-case": "^1.1.1" + } + }, + "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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==", + "dev": true + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/web3": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", + "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.8.2", + "web3-core": "1.8.2", + "web3-eth": "1.8.2", + "web3-eth-personal": "1.8.2", + "web3-net": "1.8.2", + "web3-shh": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-bzz": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", + "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-bzz/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true + }, + "node_modules/web3-core": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", + "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-requestmanager": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-helpers": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", + "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", + "dev": true, + "dependencies": { + "web3-eth-iban": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-method": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", + "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", + "dev": true, + "dependencies": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.8.2", + "web3-core-promievent": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-promievent": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", + "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-promievent/node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + }, + "node_modules/web3-core-requestmanager": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", + "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", + "dev": true, + "dependencies": { + "util": "^0.12.5", + "web3-core-helpers": "1.8.2", + "web3-providers-http": "1.8.2", + "web3-providers-ipc": "1.8.2", + "web3-providers-ws": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-subscriptions": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", + "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-core-subscriptions/node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + }, + "node_modules/web3-core/node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/web3-core/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true + }, + "node_modules/web3-core/node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/web3-eth": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", + "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", + "dev": true, + "dependencies": { + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-eth-abi": "1.8.2", + "web3-eth-accounts": "1.8.2", + "web3-eth-contract": "1.8.2", + "web3-eth-ens": "1.8.2", + "web3-eth-iban": "1.8.2", + "web3-eth-personal": "1.8.2", + "web3-net": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-abi": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", + "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", + "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts/node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/web3-eth-accounts/node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/web3-eth-accounts/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/web3-eth-accounts/node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/web3-eth-contract": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", + "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-promievent": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-eth-abi": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-contract/node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/web3-eth-ens": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", + "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", + "dev": true, + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-promievent": "1.8.2", + "web3-eth-abi": "1.8.2", + "web3-eth-contract": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-iban": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", + "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-iban/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/web3-eth-personal": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", + "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", + "dev": true, + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-net": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-personal/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true + }, + "node_modules/web3-net": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", + "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", + "dev": true, + "dependencies": { + "web3-core": "1.8.2", + "web3-core-method": "1.8.2", + "web3-utils": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-http": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", + "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", + "dev": true, + "dependencies": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ipc": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", + "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", + "dev": true, + "dependencies": { + "oboe": "2.1.5", + "web3-core-helpers": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ws": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", + "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", + "dev": true, + "dependencies": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.2", + "websocket": "^1.0.32" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-providers-ws/node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + }, + "node_modules/web3-shh": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", + "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-core": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-net": "1.8.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", + "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/web3-utils/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/web3-utils/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dev": true, + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/websocket/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "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/window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==", + "dev": true, + "bin": { + "window-size": "cli.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "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, + "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 + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dev": true, + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "dev": true, + "dependencies": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "node_modules/xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "dev": true, + "dependencies": { + "xhr-request": "^1.1.0" + } + }, + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "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, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "dev": true, + "engines": { + "node": ">=0.10.32" + } + }, + "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 + }, + "node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "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, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@adraffy/ens-normalize": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.8.9.tgz", + "integrity": "sha512-93OmGCV0vO8+JQ3FHG+gZk/MPHzzMPDRiCiFcCQNTCnHaaxsacO3ScTPGlu2wX2dOtgfalbchPcw1cOYYjHCYQ==", + "dev": true + }, + "@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@ensdomains/address-encoder": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", + "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", + "dev": true, + "requires": { + "bech32": "^1.1.3", + "blakejs": "^1.1.0", + "bn.js": "^4.11.8", + "bs58": "^4.0.1", + "crypto-addr-codec": "^0.1.7", + "nano-base32": "^1.0.1", + "ripemd160": "^2.0.2" + } + }, + "@ensdomains/ens": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", + "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", + "dev": true, + "requires": { + "bluebird": "^3.5.2", + "eth-ens-namehash": "^2.0.8", + "solc": "^0.4.20", + "testrpc": "0.0.1", + "web3-utils": "^1.0.0-beta.31" + } + }, + "@ensdomains/ensjs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", + "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", + "dev": true, + "requires": { + "@babel/runtime": "^7.4.4", + "@ensdomains/address-encoder": "^0.1.7", + "@ensdomains/ens": "0.4.5", + "@ensdomains/resolver": "0.2.4", + "content-hash": "^2.5.2", + "eth-ens-namehash": "^2.0.8", + "ethers": "^5.0.13", + "js-sha3": "^0.8.0" + }, + "dependencies": { + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + } + } + }, + "@ensdomains/resolver": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", + "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", + "dev": true + }, + "@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "dev": true, + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } + } + }, + "@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "dev": true, + "requires": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + } + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + }, + "dependencies": { + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true + } + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + }, + "dependencies": { + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "requires": {} + } + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + } + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@noble/hashes": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", + "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", + "dev": true + }, + "@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true + }, + "@openzeppelin/contract-loader": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", + "integrity": "sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "@openzeppelin/test-environment": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@openzeppelin/test-environment/-/test-environment-0.1.9.tgz", + "integrity": "sha512-QJ2TSRGbHMv4lrLChT7ghcoPGB3osXZvLXM3VqD8XhrJsYi/t5QJ8aHNYKa+A8EmCkH/rGZWgvRfhphVTFf0DA==", + "dev": true, + "requires": { + "@openzeppelin/contract-loader": "^0.6.1", + "@truffle/contract": "^4.0.38", + "ansi-colors": "^4.1.1", + "ethereumjs-wallet": "^0.6.3", + "exit-hook": "^2.2.0", + "find-up": "^4.1.0", + "fs-extra": "^9.0.1", + "ganache-core": "^2.11.2", + "lodash.merge": "^4.6.2", + "p-queue": "^6.2.0", + "semver": "^7.1.3", + "try-require": "^1.2.1", + "web3": "^1.3.0" + } + }, + "@openzeppelin/test-helpers": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.16.tgz", + "integrity": "sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==", + "dev": true, + "requires": { + "@openzeppelin/contract-loader": "^0.6.2", + "@truffle/contract": "^4.0.35", + "ansi-colors": "^3.2.3", + "chai": "^4.2.0", + "chai-bn": "^0.2.1", + "ethjs-abi": "^0.2.1", + "lodash.flatten": "^4.4.0", + "semver": "^5.6.0", + "web3": "^1.2.5", + "web3-utils": "^1.2.5" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "@truffle/abi-utils": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.3.9.tgz", + "integrity": "sha512-G5dqgwRHx5zwlXjz3QT8OJVfB2cOqWwD6DwKso0KttUt/zejhCjnkKq72rSgyeLMkz7wBB9ERLOsupLBILM8MA==", + "dev": true, + "requires": { + "change-case": "3.0.2", + "fast-check": "3.1.1", + "web3-utils": "1.8.2" + } + }, + "@truffle/blockchain-utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.6.tgz", + "integrity": "sha512-SldoNRIFSm3+HMBnSc2jFsu5TWDkCN4X6vL3wrd0t6DIeF7nD6EoPPjxwbFSoqCnkkRxMuZeL6sUx7UMJS/wSA==", + "dev": true + }, + "@truffle/codec": { + "version": "0.14.16", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.16.tgz", + "integrity": "sha512-a9UY3n/FnkKN3Q4zOuMFOOcLWb80mdknj+voim4vvXYtJm1aAZQZE5sG9aLnMBTl4TiGLzUtfNDVYY7WgWgDag==", + "dev": true, + "requires": { + "@truffle/abi-utils": "^0.3.9", + "@truffle/compile-common": "^0.9.4", + "big.js": "^6.0.3", + "bn.js": "^5.1.3", + "cbor": "^5.2.0", + "debug": "^4.3.1", + "lodash": "^4.17.21", + "semver": "7.3.7", + "utf8": "^3.0.0", + "web3-utils": "1.8.2" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@truffle/compile-common": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.4.tgz", + "integrity": "sha512-mnqJB/hLiPHNf+WKwt/2MH6lv34xSG/SFCib7+ckAklutUqVLeFo8EwQxinuHNkU7LY0C+YgZXhK1WTCO5YRJQ==", + "dev": true, + "requires": { + "@truffle/error": "^0.2.0", + "colors": "1.4.0" + } + }, + "@truffle/contract": { + "version": "4.6.17", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.17.tgz", + "integrity": "sha512-sIMam5Wqr9AEiqHfOcWGJGqTv8Qy+BT765PaNHUUT6JBAY+tpHM3FlQd2nM6zLJ8paR3SLDGIthkhCBH/KNgDA==", + "dev": true, + "requires": { + "@ensdomains/ensjs": "^2.1.0", + "@truffle/blockchain-utils": "^0.1.6", + "@truffle/contract-schema": "^3.4.13", + "@truffle/debug-utils": "^6.0.47", + "@truffle/error": "^0.2.0", + "@truffle/interface-adapter": "^0.5.30", + "bignumber.js": "^7.2.1", + "debug": "^4.3.1", + "ethers": "^4.0.32", + "web3": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-promievent": "1.8.2", + "web3-eth-abi": "1.8.2", + "web3-utils": "1.8.2" + }, + "dependencies": { + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true + }, + "ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "requires": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "dev": true + }, + "scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "dev": true + } + } + }, + "@truffle/contract-schema": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.13.tgz", + "integrity": "sha512-emG7upuryYFrsPDbHqeASPWXL824M1tinhQwSPG0phSoa3g+RX9fUNNN/VPmF3tSkXLWUMhRnb7ehxnaCuRbZg==", + "dev": true, + "requires": { + "ajv": "^6.10.0", + "debug": "^4.3.1" + } + }, + "@truffle/debug-utils": { + "version": "6.0.47", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.47.tgz", + "integrity": "sha512-bUjdzLPdEKtoUCDzaXkrOoi+PbyAJlMBzGequBK8tirT7xL9bCP2Pd/WxvnmRd7AnfroxGNvXwVXWTItW5SMWQ==", + "dev": true, + "requires": { + "@truffle/codec": "^0.14.16", + "@trufflesuite/chromafi": "^3.0.0", + "bn.js": "^5.1.3", + "chalk": "^2.4.2", + "debug": "^4.3.1", + "highlightjs-solidity": "^2.0.6" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + } + } + }, + "@truffle/error": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.0.tgz", + "integrity": "sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ==", + "dev": true + }, + "@truffle/interface-adapter": { + "version": "0.5.30", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.30.tgz", + "integrity": "sha512-wyCcESeZJBkAfuSGU8GHCusIWDUDyQjJZMcyShv59ZTSAwQR7xx0+a0Q1LlS532G/pGFLYe2VzKSY1pRHRwgug==", + "dev": true, + "requires": { + "bn.js": "^5.1.3", + "ethers": "^4.0.32", + "web3": "1.8.2" + }, + "dependencies": { + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "dev": true, + "requires": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "dev": true + }, + "scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "dev": true + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "dev": true + } + } + }, + "@trufflesuite/chromafi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz", + "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "chalk": "^2.3.2", + "cheerio": "^1.0.0-rc.2", + "detect-indent": "^5.0.0", + "highlight.js": "^10.4.1", + "lodash.merge": "^4.6.2", + "strip-ansi": "^4.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } + }, + "abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "aes-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", + "dev": true + }, + "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" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "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==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "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==", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "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 + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + } + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true + }, + "big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "dev": true + }, + "big.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", + "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", + "dev": true + }, + "bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "dev": true, + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cacheable-lookup": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", + "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", + "dev": true + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "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" + } + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "dev": true, + "requires": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + }, + "dependencies": { + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "dev": true + } + } + }, + "chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chai-bn": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz", + "integrity": "sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==", + "dev": true, + "requires": {} + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.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" + } + }, + "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 + } + } + }, + "change-case": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", + "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", + "dev": true, + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "requires": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + } + }, + "cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "dependencies": { + "multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "dev": true, + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", + "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" + } + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "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==", + "dev": true, + "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==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", + "dev": true, + "requires": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "dev": true, + "requires": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + } + }, + "crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "dev": true, + "requires": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "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" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + } + } + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dev": true, + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + } + }, + "dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "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==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + }, + "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" + } + }, + "es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "dev": true, + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "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 + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", + "dev": true, + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "dev": true + } + } + }, + "eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "dev": true, + "requires": { + "js-sha3": "^0.8.0" + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", "blakejs": "^1.1.0", "browserify-aes": "^1.2.0", "bs58check": "^2.1.2", @@ -271,1029 +20145,11427 @@ "pbkdf2": "^3.0.17", "randombytes": "^2.1.0", "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "ethereumjs-wallet": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz", + "integrity": "sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==", + "dev": true, + "requires": { + "aes-js": "^3.1.1", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^6.0.0", + "randombytes": "^2.0.6", + "safe-buffer": "^5.1.2", + "scryptsy": "^1.2.1", + "utf8": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "ethers": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.1.0.tgz", + "integrity": "sha512-aC45YGbvgXt7Nses5WsdQwc1cUIrrQt32zeFShNW7ZT3RQCIHBnd4nmbE5sJmrp70uTdwkRHkr4cZr1D/YwFPg==", + "dev": true, + "requires": { + "@adraffy/ens-normalize": "1.8.9", + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.7.1", + "aes-js": "4.0.0-beta.3", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "dependencies": { + "aes-js": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.3.tgz", + "integrity": "sha512-/xJX0/VTPcbc5xQE2VUP91y1xN8q/rDfhEzLm+vLc3hYvb5+qHCnpJRuFcrKn63zumK/sCwYYzhG8HP78JYSTA==", + "dev": true + } + } + }, + "ethjs-abi": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", + "integrity": "sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==", + "dev": true, + "requires": { + "bn.js": "4.11.6", + "js-sha3": "0.5.5", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + }, + "js-sha3": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", + "integrity": "sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==", + "dev": true + } + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dev": true, + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exit-hook": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", + "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", + "dev": true + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "requires": { + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, + "fast-check": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", + "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", + "dev": true, + "requires": { + "pure-rand": "^5.0.1" + } + }, + "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-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 + }, + "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==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "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": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "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" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", + "dev": true + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "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==", + "dev": true, + "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 + }, + "ganache-cli": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz", + "integrity": "sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==", + "dev": true, + "requires": { + "ethereumjs-util": "6.2.1", + "source-map-support": "0.5.12", + "yargs": "13.2.4" + }, + "dependencies": { + "@types/bn.js": { + "version": "4.11.6", + "bundled": true, + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "14.11.2", + "bundled": true, + "dev": true + }, + "@types/pbkdf2": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ansi-regex": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "base-x": { + "version": "3.0.8", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "blakejs": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "bn.js": { + "version": "4.11.9", + "bundled": true, + "dev": true + }, + "brorand": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer-from": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "bundled": true, + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cliui": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "color-convert": { + "version": "1.9.3", + "bundled": true, + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "create-hash": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "bundled": true, + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "bundled": true, + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "bundled": true, + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "bundled": true, + "dev": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "ethjs-util": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "hash-base": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "invert-kv": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-hex-prefixed": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "keccak": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "lcid": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mem": { + "version": "4.3.0", + "bundled": true, + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "node-addon-api": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "node-gyp-build": { + "version": "4.2.3", + "bundled": true, + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-locale": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true, + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "randombytes": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "ripemd160": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.6", + "bundled": true, + "dev": true, + "requires": { + "bn.js": "^4.11.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + }, + "scrypt-js": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "secp256k1": { + "version": "4.0.2", + "bundled": true, + "dev": true, + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "bundled": true, + "dev": true + }, + "source-map": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "source-map-support": { + "version": "0.5.12", + "bundled": true, + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-hex-prefix": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "y18n": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "13.2.4", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" + } + }, + "yargs-parser": { + "version": "13.1.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "ganache-core": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz", + "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==", + "dev": true, + "requires": { + "abstract-leveldown": "3.0.0", + "async": "2.6.2", + "bip39": "2.5.0", + "cachedown": "1.0.0", + "clone": "2.1.2", + "debug": "3.2.6", + "encoding-down": "5.0.4", + "eth-sig-util": "3.0.0", + "ethereumjs-abi": "0.6.8", + "ethereumjs-account": "3.0.0", + "ethereumjs-block": "2.2.2", + "ethereumjs-common": "1.5.0", + "ethereumjs-tx": "2.1.2", + "ethereumjs-util": "6.2.1", + "ethereumjs-vm": "4.2.0", + "ethereumjs-wallet": "0.6.5", + "heap": "0.2.6", + "keccak": "3.0.1", + "level-sublevel": "6.6.4", + "levelup": "3.1.1", + "lodash": "4.17.20", + "lru-cache": "5.1.1", + "merkle-patricia-tree": "3.0.0", + "patch-package": "6.2.2", + "seedrandom": "3.0.1", + "source-map-support": "0.5.12", + "tmp": "0.1.0", + "web3": "1.2.11", + "web3-provider-engine": "14.2.1", + "websocket": "1.0.32" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.0.0-beta.153", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/address": ">=5.0.0-beta.128", + "@ethersproject/bignumber": ">=5.0.0-beta.130", + "@ethersproject/bytes": ">=5.0.0-beta.129", + "@ethersproject/constants": ">=5.0.0-beta.128", + "@ethersproject/hash": ">=5.0.0-beta.128", + "@ethersproject/keccak256": ">=5.0.0-beta.127", + "@ethersproject/logger": ">=5.0.0-beta.129", + "@ethersproject/properties": ">=5.0.0-beta.131", + "@ethersproject/strings": ">=5.0.0-beta.130" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.0.8", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/networks": "^5.0.7", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/transactions": "^5.0.9", + "@ethersproject/web": "^5.0.12" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.0.10", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/abstract-provider": "^5.0.8", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7" + } + }, + "@ethersproject/address": { + "version": "5.0.9", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/rlp": "^5.0.7" + } + }, + "@ethersproject/base64": { + "version": "5.0.7", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bytes": "^5.0.9" + } + }, + "@ethersproject/bignumber": { + "version": "5.0.13", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "bn.js": "^4.4.0" + } + }, + "@ethersproject/bytes": { + "version": "5.0.9", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/constants": { + "version": "5.0.8", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bignumber": "^5.0.13" + } + }, + "@ethersproject/hash": { + "version": "5.0.10", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/abstract-signer": "^5.0.10", + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" + } + }, + "@ethersproject/keccak256": { + "version": "5.0.7", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bytes": "^5.0.9", + "js-sha3": "0.5.7" + } + }, + "@ethersproject/logger": { + "version": "5.0.8", + "dev": true, + "optional": true + }, + "@ethersproject/networks": { + "version": "5.0.7", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/properties": { + "version": "5.0.7", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/rlp": { + "version": "5.0.7", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/signing-key": { + "version": "5.0.8", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "elliptic": "6.5.3" + } + }, + "@ethersproject/strings": { + "version": "5.0.8", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/transactions": { + "version": "5.0.9", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/rlp": "^5.0.7", + "@ethersproject/signing-key": "^5.0.8" + } + }, + "@ethersproject/web": { + "version": "5.0.12", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/base64": "^5.0.7", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "dev": true, + "optional": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "optional": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/bn.js": { + "version": "4.11.6", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "14.14.20", + "dev": true + }, + "@types/pbkdf2": { + "version": "3.1.0", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.1", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "dev": true + }, + "abstract-leveldown": { + "version": "3.0.0", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "accepts": { + "version": "1.3.7", + "dev": true, + "optional": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "aes-js": { + "version": "3.1.2", + "dev": true, + "optional": true + }, + "ajv": { + "version": "6.12.6", + "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" + } + }, + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "arr-diff": { + "version": "4.0.0", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "dev": true, + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "dev": true + }, + "async": { + "version": "2.6.2", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "async-eventemitter": { + "version": "0.2.4", + "dev": true, + "requires": { + "async": "^2.4.0" + } + }, + "async-limiter": { + "version": "1.0.1", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "dev": true + }, + "atob": { + "version": "2.1.2", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "babel-core": { + "version": "6.26.3", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "json5": { + "version": "0.5.1", + "dev": true + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "slash": { + "version": "1.0.0", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.1", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "dev": true + } + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-env": { + "version": "1.7.0", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "dev": true + } + } + }, + "babel-register": { + "version": "6.26.0", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "source-map-support": { + "version": "0.4.18", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "dev": true + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "dev": true + } + } + }, + "babelify": { + "version": "7.3.0", + "dev": true, + "requires": { + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" + } + }, + "babylon": { + "version": "6.18.0", + "dev": true + }, + "backoff": { + "version": "2.5.0", + "dev": true, + "requires": { + "precond": "0.2" + } + }, + "balanced-match": { + "version": "1.0.0", + "dev": true + }, + "base": { + "version": "0.11.2", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base-x": { + "version": "3.0.8", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "dev": true + } + } + }, + "bignumber.js": { + "version": "9.0.1", + "dev": true, + "optional": true + }, + "bip39": { + "version": "2.5.0", + "dev": true, + "requires": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } + }, + "blakejs": { + "version": "1.1.0", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "dev": true, + "optional": true + }, + "bn.js": { + "version": "4.11.9", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "dev": true, + "optional": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.7.0", + "dev": true, + "optional": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "dev": true, + "optional": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "dev": true, + "optional": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "5.1.3", + "dev": true, + "optional": true + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.1.3", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "3.6.0", + "dev": true, + "optional": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "browserslist": { + "version": "3.2.8", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "bs58": { + "version": "4.0.1", + "dev": true, + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "dev": true, + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "5.7.1", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.1", + "dev": true + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "dev": true, + "optional": true + }, + "buffer-xor": { + "version": "1.0.3", + "dev": true + }, + "bufferutil": { + "version": "4.0.3", + "dev": true, + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "bytes": { + "version": "3.1.0", + "dev": true, + "optional": true + }, + "bytewise": { + "version": "1.1.0", + "dev": true, + "requires": { + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" + } + }, + "bytewise-core": { + "version": "1.2.3", + "dev": true, + "requires": { + "typewise-core": "^1.2" + } + }, + "cache-base": { + "version": "1.0.1", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "dev": true, + "optional": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "dev": true, + "optional": true + } + } + }, + "cachedown": { + "version": "1.0.0", + "dev": true, + "requires": { + "abstract-leveldown": "^2.4.1", + "lru-cache": "^3.2.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "lru-cache": { + "version": "3.2.0", + "dev": true, + "requires": { + "pseudomap": "^1.0.1" + } + } + } + }, + "call-bind": { + "version": "1.0.2", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caniuse-lite": { + "version": "1.0.30001174", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "checkpoint-store": { + "version": "1.1.0", + "dev": true, + "requires": { + "functional-red-black-tree": "^1.0.1" + } + }, + "chownr": { + "version": "1.1.4", + "dev": true, + "optional": true + }, + "ci-info": { + "version": "2.0.0", + "dev": true + }, + "cids": { + "version": "0.7.5", + "dev": true, + "optional": true, + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "dependencies": { + "multicodec": { + "version": "1.0.4", + "dev": true, + "optional": true, + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + } + } + }, + "cipher-base": { + "version": "1.0.4", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-is": { + "version": "1.1.0", + "dev": true, + "optional": true + }, + "class-utils": { + "version": "0.3.6", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "dev": true + } + } + }, + "clone": { + "version": "2.1.2", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "dev": true, + "optional": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "component-emitter": { + "version": "1.3.0", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "content-disposition": { + "version": "0.5.3", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "dev": true, + "optional": true + } + } + }, + "content-hash": { + "version": "2.5.2", + "dev": true, + "optional": true, + "requires": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "content-type": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "convert-source-map": { + "version": "1.7.0", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "dev": true + } + } + }, + "cookie": { + "version": "0.4.0", + "dev": true, + "optional": true + }, + "cookie-signature": { + "version": "1.0.6", + "dev": true, + "optional": true + }, + "cookiejar": { + "version": "2.1.2", + "dev": true, + "optional": true + }, + "copy-descriptor": { + "version": "0.1.1", + "dev": true + }, + "core-js": { + "version": "2.6.12", + "dev": true + }, + "core-js-pure": { + "version": "3.8.2", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "dev": true + }, + "cors": { + "version": "2.8.5", + "dev": true, + "optional": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "create-ecdh": { + "version": "4.0.4", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "create-hash": { + "version": "1.2.0", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-fetch": { + "version": "2.2.3", + "dev": true, + "requires": { + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "dev": true, + "optional": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "d": { + "version": "1.0.1", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.2.6", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "dev": true, + "optional": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-equal": { + "version": "1.1.1", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "dev": true, + "optional": true + }, + "deferred-leveldown": { + "version": "4.0.2", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "inherits": "^2.0.3" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "define-properties": { + "version": "1.1.3", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "defined": { + "version": "1.0.0", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "dev": true + }, + "depd": { + "version": "1.1.2", + "dev": true, + "optional": true + }, + "des.js": { + "version": "1.0.1", + "dev": true, + "optional": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "detect-indent": { + "version": "4.0.0", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dom-walk": { + "version": "0.1.2", + "dev": true + }, + "dotignore": { + "version": "0.1.2", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "duplexer3": { + "version": "0.1.4", + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "dev": true, + "optional": true + }, + "electron-to-chromium": { + "version": "1.3.636", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "encodeurl": { + "version": "1.0.2", + "dev": true, + "optional": true + }, + "encoding": { + "version": "0.1.13", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "encoding-down": { + "version": "5.0.4", + "dev": true, + "requires": { + "abstract-leveldown": "^5.0.0", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "errno": { + "version": "0.1.8", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.1", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escape-html": { + "version": "1.0.3", + "dev": true, + "optional": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "etag": { + "version": "1.8.1", + "dev": true, + "optional": true + }, + "eth-block-tracker": { + "version": "3.0.1", + "dev": true, + "requires": { + "eth-query": "^2.1.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.3", + "ethjs-util": "^0.1.3", + "json-rpc-engine": "^3.6.0", + "pify": "^2.3.0", + "tape": "^4.6.3" + }, + "dependencies": { + "ethereumjs-tx": { + "version": "1.3.7", + "dev": true, + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "pify": { + "version": "2.3.0", + "dev": true + } + } + }, + "eth-ens-namehash": { + "version": "2.0.8", + "dev": true, + "optional": true, + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + } + }, + "eth-json-rpc-infura": { + "version": "3.2.1", + "dev": true, + "requires": { + "cross-fetch": "^2.1.1", + "eth-json-rpc-middleware": "^1.5.0", + "json-rpc-engine": "^3.4.0", + "json-rpc-error": "^2.0.0" + } + }, + "eth-json-rpc-middleware": { + "version": "1.6.0", + "dev": true, + "requires": { + "async": "^2.5.0", + "eth-query": "^2.1.2", + "eth-tx-summary": "^3.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.1.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^3.6.0", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "tape": "^4.6.3" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, + "ethereumjs-account": { + "version": "2.0.5", + "dev": true, + "requires": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-block": { + "version": "1.7.1", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereum-common": { + "version": "0.2.0", + "dev": true + } + } + }, + "ethereumjs-tx": { + "version": "1.3.7", + "dev": true, + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-vm": { + "version": "2.6.0", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-tx": { + "version": "2.1.2", + "dev": true, + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "isarray": { + "version": "0.0.1", + "dev": true + }, + "level-codec": { + "version": "7.0.1", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "level-ws": { + "version": "0.0.0", + "dev": true, + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "xtend": { + "version": "2.1.2", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "dev": true, + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "ltgt": { + "version": "2.2.1", + "dev": true + }, + "memdown": { + "version": "1.4.1", + "dev": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "dev": true + } + } + }, + "object-keys": { + "version": "0.4.0", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "semver": { + "version": "5.4.1", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "dev": true + } + } + }, + "eth-lib": { + "version": "0.1.29", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eth-query": { + "version": "2.1.2", + "dev": true, + "requires": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "eth-sig-util": { + "version": "3.0.0", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "elliptic": "^6.4.0", + "ethereumjs-abi": "0.6.5", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.0", + "tweetnacl-util": "^0.15.0" + }, + "dependencies": { + "ethereumjs-abi": { + "version": "0.6.5", + "dev": true, + "requires": { + "bn.js": "^4.10.0", + "ethereumjs-util": "^4.3.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "4.5.1", + "dev": true, + "requires": { + "bn.js": "^4.8.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.0.0" + } + } + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "eth-tx-summary": { + "version": "3.2.4", + "dev": true, + "requires": { + "async": "^2.1.2", + "clone": "^2.0.0", + "concat-stream": "^1.5.1", + "end-of-stream": "^1.1.0", + "eth-query": "^2.0.2", + "ethereumjs-block": "^1.4.1", + "ethereumjs-tx": "^1.1.1", + "ethereumjs-util": "^5.0.1", + "ethereumjs-vm": "^2.6.0", + "through2": "^2.0.3" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, + "ethereumjs-account": { + "version": "2.0.5", + "dev": true, + "requires": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-block": { + "version": "1.7.1", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereum-common": { + "version": "0.2.0", + "dev": true + } + } + }, + "ethereumjs-tx": { + "version": "1.3.7", + "dev": true, + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-vm": { + "version": "2.6.0", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-tx": { + "version": "2.1.2", + "dev": true, + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "isarray": { + "version": "0.0.1", + "dev": true + }, + "level-codec": { + "version": "7.0.1", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "level-ws": { + "version": "0.0.0", + "dev": true, + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "xtend": { + "version": "2.1.2", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "dev": true, + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "ltgt": { + "version": "2.2.1", + "dev": true + }, + "memdown": { + "version": "1.4.1", + "dev": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "dev": true + } + } + }, + "object-keys": { + "version": "0.4.0", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "semver": { + "version": "5.4.1", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "dev": true + } + } + }, + "ethashjs": { + "version": "0.0.8", + "dev": true, + "requires": { + "async": "^2.1.2", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.0.2", + "miller-rabin": "^4.0.0" + }, + "dependencies": { + "bn.js": { + "version": "5.1.3", + "dev": true + }, + "buffer-xor": { + "version": "2.0.2", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-util": { + "version": "7.0.7", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + } + } + } + }, + "ethereum-bloom-filters": { + "version": "1.0.7", + "dev": true, + "optional": true, + "requires": { + "js-sha3": "^0.8.0" + }, + "dependencies": { + "js-sha3": { + "version": "0.8.0", + "dev": true, + "optional": true + } + } + }, + "ethereum-common": { + "version": "0.0.18", + "dev": true + }, + "ethereum-cryptography": { + "version": "0.1.3", + "dev": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-abi": { + "version": "0.6.8", + "dev": true, + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-account": { + "version": "3.0.0", + "dev": true, + "requires": { + "ethereumjs-util": "^6.0.0", + "rlp": "^2.2.1", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-block": { + "version": "2.2.2", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "isarray": { + "version": "0.0.1", + "dev": true + }, + "level-codec": { + "version": "7.0.1", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "level-ws": { + "version": "0.0.0", + "dev": true, + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "xtend": { + "version": "2.1.2", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "dev": true, + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "ltgt": { + "version": "2.2.1", + "dev": true + }, + "memdown": { + "version": "1.4.1", + "dev": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "dev": true + } + } + }, + "object-keys": { + "version": "0.4.0", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "semver": { + "version": "5.4.1", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "dev": true + } + } + }, + "ethereumjs-blockchain": { + "version": "4.0.4", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethashjs": "~0.0.7", + "ethereumjs-block": "~2.2.2", + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.1.0", + "flow-stoplight": "^1.0.0", + "level-mem": "^3.0.1", + "lru-cache": "^5.1.1", + "rlp": "^2.2.2", + "semaphore": "^1.1.0" + } + }, + "ethereumjs-common": { + "version": "1.5.0", + "dev": true + }, + "ethereumjs-tx": { + "version": "2.1.2", + "dev": true, + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "ethereumjs-vm": { + "version": "4.2.0", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "core-js-pure": "^3.0.1", + "ethereumjs-account": "^3.0.0", + "ethereumjs-block": "^2.2.2", + "ethereumjs-blockchain": "^4.0.3", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.2", + "ethereumjs-util": "^6.2.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1", + "util.promisify": "^1.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, + "isarray": { + "version": "0.0.1", + "dev": true + }, + "level-codec": { + "version": "7.0.1", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "level-ws": { + "version": "0.0.0", + "dev": true, + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "xtend": { + "version": "2.1.2", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "dev": true, + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "ltgt": { + "version": "2.2.1", + "dev": true + }, + "memdown": { + "version": "1.4.1", + "dev": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "dev": true + }, + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "object-keys": { + "version": "0.4.0", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "semver": { + "version": "5.4.1", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "dev": true + } + } + }, + "ethereumjs-wallet": { + "version": "0.6.5", + "dev": true, + "optional": true, + "requires": { + "aes-js": "^3.1.1", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^6.0.0", + "randombytes": "^2.0.6", + "safe-buffer": "^5.1.2", + "scryptsy": "^1.2.1", + "utf8": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "ethjs-unit": { + "version": "0.1.6", + "dev": true, + "optional": true, + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "dev": true, + "optional": true + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter3": { + "version": "4.0.4", + "dev": true, + "optional": true + }, + "events": { + "version": "3.2.0", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "dev": true + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "dev": true, + "optional": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.7.0", + "dev": true, + "optional": true + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true, + "optional": true + } + } + }, + "ext": { + "version": "1.4.0", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "extglob": { + "version": "2.0.4", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.3.0", + "dev": true + }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "dev": true, + "requires": { + "checkpoint-store": "^1.1.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fetch-ponyfill": { + "version": "4.1.0", + "dev": true, + "requires": { + "node-fetch": "~1.7.1" + }, + "dependencies": { + "is-stream": { + "version": "1.1.0", + "dev": true + }, + "node-fetch": { + "version": "1.7.3", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true, + "optional": true + } + } + }, + "find-yarn-workspace-root": { + "version": "1.2.1", + "dev": true, + "requires": { + "fs-extra": "^4.0.3", + "micromatch": "^3.1.4" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fs-extra": { + "version": "4.0.3", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "flow-stoplight": { + "version": "1.0.0", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "dev": true, + "optional": true + }, + "fragment-cache": { + "version": "0.2.1", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "dev": true, + "optional": true + }, + "fs-extra": { + "version": "7.0.1", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.2", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "5.2.0", + "dev": true, + "optional": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global": { + "version": "4.4.0", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "got": { + "version": "9.6.0", + "dev": true, + "optional": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "dev": true, + "optional": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "has-symbol-support-x": { + "version": "1.4.2", + "dev": true, + "optional": true + }, + "has-symbols": { + "version": "1.0.1", + "dev": true + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "dev": true, + "optional": true, + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-value": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash.js": { + "version": "1.1.7", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "heap": { + "version": "0.2.6", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "dev": true, + "optional": true + }, + "http-errors": { + "version": "1.7.2", + "dev": true, + "optional": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "dev": true, + "optional": true + } + } + }, + "http-https": { + "version": "1.0.0", + "dev": true, + "optional": true + }, + "http-signature": { + "version": "1.2.0", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "dev": true, + "optional": true, + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "dev": true, + "optional": true + } + } + }, + "ieee754": { + "version": "1.2.1", + "dev": true + }, + "immediate": { + "version": "3.2.3", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "dev": true, + "optional": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-arguments": { + "version": "1.1.0", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.2", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-date-object": { + "version": "1.0.2", + "dev": true + }, + "is-descriptor": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-finite": { + "version": "1.1.0", + "dev": true + }, + "is-fn": { + "version": "1.0.0", + "dev": true + }, + "is-function": { + "version": "1.0.2", + "dev": true + }, + "is-hex-prefixed": { + "version": "1.0.0", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "dev": true + }, + "is-object": { + "version": "1.0.2", + "dev": true, + "optional": true + }, + "is-plain-obj": { + "version": "1.1.0", + "dev": true, + "optional": true + }, + "is-plain-object": { + "version": "2.0.4", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "dev": true, + "optional": true + }, + "is-symbol": { + "version": "1.0.3", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "dev": true + }, + "isurl": { + "version": "1.0.0", + "dev": true, + "optional": true, + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "js-sha3": { + "version": "0.5.7", + "dev": true, + "optional": true + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "dev": true, + "optional": true + }, + "json-rpc-engine": { + "version": "3.8.0", + "dev": true, + "requires": { + "async": "^2.0.1", + "babel-preset-env": "^1.7.0", + "babelify": "^7.3.0", + "json-rpc-error": "^2.0.0", + "promise-to-callback": "^1.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "json-rpc-error": { + "version": "2.0.0", + "dev": true, + "requires": { + "inherits": "^2.0.1" + } + }, + "json-rpc-random-id": { + "version": "1.0.1", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keccak": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "keyv": { + "version": "3.1.0", + "dev": true, + "optional": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "dev": true + }, + "klaw-sync": { + "version": "6.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11" + } + }, + "level-codec": { + "version": "9.0.2", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, + "level-errors": { + "version": "2.0.1", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "2.0.3", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.5", + "xtend": "^4.0.0" + } + }, + "level-mem": { + "version": "3.0.1", + "dev": true, + "requires": { + "level-packager": "~4.0.0", + "memdown": "~3.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "5.0.0", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "ltgt": { + "version": "2.2.1", + "dev": true + }, + "memdown": { + "version": "3.0.0", + "dev": true, + "requires": { + "abstract-leveldown": "~5.0.0", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + } + } + }, + "level-packager": { + "version": "4.0.1", + "dev": true, + "requires": { + "encoding-down": "~5.0.0", + "levelup": "^3.0.0" + } + }, + "level-post": { + "version": "1.0.7", + "dev": true, + "requires": { + "ltgt": "^2.1.2" + } + }, + "level-sublevel": { + "version": "6.6.4", + "dev": true, + "requires": { + "bytewise": "~1.1.0", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0", + "level-iterator-stream": "^2.0.3", + "ltgt": "~2.1.1", + "pull-defer": "^0.2.2", + "pull-level": "^2.0.3", + "pull-stream": "^3.6.8", + "typewiselite": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "level-ws": { + "version": "1.0.0", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.8", + "xtend": "^4.0.1" + } + }, + "levelup": { + "version": "3.1.1", + "dev": true, + "requires": { + "deferred-leveldown": "~4.0.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~3.0.0", + "xtend": "~4.0.0" + }, + "dependencies": { + "level-iterator-stream": { + "version": "3.0.1", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "xtend": "^4.0.0" + } + } + } + }, + "lodash": { + "version": "4.17.20", + "dev": true + }, + "looper": { + "version": "2.0.0", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "lru-cache": { + "version": "5.1.1", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "ltgt": { + "version": "2.1.3", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "dev": true, + "optional": true + }, + "merge-descriptors": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "merkle-patricia-tree": { + "version": "3.0.0", + "dev": true, + "requires": { + "async": "^2.6.1", + "ethereumjs-util": "^5.2.0", + "level-mem": "^3.0.1", + "level-ws": "^1.0.0", + "readable-stream": "^3.0.6", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "methods": { + "version": "1.1.2", + "dev": true, + "optional": true + }, + "miller-rabin": { + "version": "4.0.1", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "1.45.0", + "dev": true + }, + "mime-types": { + "version": "2.1.28", + "dev": true, + "requires": { + "mime-db": "1.45.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "min-document": { + "version": "2.19.0", + "dev": true, + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "dev": true + }, + "minizlib": { + "version": "1.3.3", + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "mkdirp": { + "version": "0.5.5", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-promise": { + "version": "5.0.1", + "dev": true, + "optional": true, + "requires": { + "mkdirp": "*" + } + }, + "mock-fs": { + "version": "4.13.0", + "dev": true, + "optional": true + }, + "ms": { + "version": "2.1.3", + "dev": true + }, + "multibase": { + "version": "0.6.1", + "dev": true, + "optional": true, + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "multicodec": { + "version": "0.5.7", + "dev": true, + "optional": true, + "requires": { + "varint": "^5.0.0" + } + }, + "multihashes": { + "version": "0.4.21", + "dev": true, + "optional": true, + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "multibase": { + "version": "0.7.0", + "dev": true, + "optional": true, + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } + } + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "dev": true, + "optional": true + }, + "next-tick": { + "version": "1.0.0", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "node-addon-api": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "node-fetch": { + "version": "2.1.2", + "dev": true + }, + "node-gyp-build": { + "version": "4.2.3", + "bundled": true, + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "dev": true, + "optional": true + }, + "number-to-bn": { + "version": "1.7.0", + "dev": true, + "optional": true, + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "dev": true, + "optional": true + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "dev": true + }, + "object-is": { + "version": "1.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.1", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "oboe": { + "version": "2.1.4", + "dev": true, + "optional": true, + "requires": { + "http-https": "^1.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "dev": true, + "optional": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "dev": true, + "optional": true + }, + "p-timeout": { + "version": "1.2.1", + "dev": true, + "optional": true, + "requires": { + "p-finally": "^1.0.0" + }, + "dependencies": { + "p-finally": { + "version": "1.0.0", + "dev": true, + "optional": true + } + } + }, + "parse-asn1": { + "version": "5.1.6", + "dev": true, + "optional": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-headers": { + "version": "2.0.3", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "dev": true, + "optional": true + }, + "pascalcase": { + "version": "0.1.1", + "dev": true + }, + "patch-package": { + "version": "6.2.2", + "dev": true, + "requires": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "find-yarn-workspace-root": "^1.2.1", + "fs-extra": "^7.0.1", + "is-ci": "^2.0.0", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.0", + "rimraf": "^2.6.3", + "semver": "^5.6.0", + "slash": "^2.0.0", + "tmp": "^0.0.33" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "semver": { + "version": "5.7.1", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "slash": { + "version": "2.0.0", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "dev": true, + "optional": true + }, + "pbkdf2": { + "version": "3.1.1", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "dev": true + }, + "precond": { + "version": "0.2.3", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "dev": true, + "optional": true + }, + "private": { + "version": "0.1.8", + "dev": true + }, + "process": { + "version": "0.11.10", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "dev": true + }, + "promise-to-callback": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" + } + }, + "proxy-addr": { + "version": "2.0.6", + "dev": true, + "optional": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "dev": true + }, + "psl": { + "version": "1.8.0", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pull-cat": { + "version": "1.1.11", + "dev": true + }, + "pull-defer": { + "version": "0.2.3", + "dev": true + }, + "pull-level": { + "version": "2.0.4", + "dev": true, + "requires": { + "level-post": "^1.0.7", + "pull-cat": "^1.1.9", + "pull-live": "^1.0.1", + "pull-pushable": "^2.0.0", + "pull-stream": "^3.4.0", + "pull-window": "^2.1.4", + "stream-to-pull-stream": "^1.7.1" + } + }, + "pull-live": { + "version": "1.0.1", + "dev": true, + "requires": { + "pull-cat": "^1.1.9", + "pull-stream": "^3.4.0" + } + }, + "pull-pushable": { + "version": "2.2.0", + "dev": true + }, + "pull-stream": { + "version": "3.6.14", + "dev": true + }, + "pull-window": { + "version": "2.1.4", + "dev": true, + "requires": { + "looper": "^2.0.0" + } + }, + "pump": { + "version": "3.0.0", + "dev": true, + "optional": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "dev": true + }, + "qs": { + "version": "6.5.2", + "dev": true + }, + "query-string": { + "version": "5.1.1", + "dev": true, + "optional": true, + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "randombytes": { + "version": "2.1.0", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "dev": true, + "optional": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "dev": true, + "optional": true + }, + "raw-body": { + "version": "2.4.0", + "dev": true, + "optional": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "dev": true + } + } + }, + "regenerate": { + "version": "1.4.2", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "regexpu-core": { + "version": "2.0.0", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "dev": true + } + } + }, + "repeat-element": { + "version": "1.1.3", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "resolve-url": { + "version": "0.2.1", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "dev": true, + "optional": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "resumer": { + "version": "0.0.0", + "dev": true, + "requires": { + "through": "~2.3.4" + } + }, + "ret": { + "version": "0.1.15", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.6", + "dev": true, + "requires": { + "bn.js": "^4.11.1" + } + }, + "rustbn.js": { + "version": "0.2.0", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "dev": true + }, + "safe-event-emitter": { + "version": "1.0.1", + "dev": true, + "requires": { + "events": "^3.0.0" + } + }, + "safe-regex": { + "version": "1.1.0", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "dev": true + }, + "scrypt-js": { + "version": "3.0.1", + "dev": true + }, + "scryptsy": { + "version": "1.2.1", + "dev": true, + "optional": true, + "requires": { + "pbkdf2": "^3.0.3" + } + }, + "secp256k1": { + "version": "4.0.2", + "dev": true, + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "seedrandom": { + "version": "3.0.1", + "dev": true + }, + "semaphore": { + "version": "1.1.0", + "dev": true + }, + "send": { + "version": "0.17.1", + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "dev": true, + "optional": true + } + } + }, + "ms": { + "version": "2.1.1", + "dev": true, + "optional": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "dev": true, + "optional": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "servify": { + "version": "0.1.12", + "dev": true, + "optional": true, + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "dev": true + } + } + }, + "setimmediate": { + "version": "1.0.5", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "dev": true, + "optional": true + }, + "sha.js": { + "version": "2.4.11", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "simple-concat": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "simple-get": { + "version": "2.8.1", + "dev": true, + "optional": true, + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "dev": true + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.12", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sshpk": { + "version": "1.16.1", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "dev": true + } + } + }, + "static-extend": { + "version": "0.1.2", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "dev": true + } + } + }, + "statuses": { + "version": "1.5.0", + "dev": true, + "optional": true + }, + "stream-to-pull-stream": { + "version": "1.7.3", + "dev": true, + "requires": { + "looper": "^3.0.0", + "pull-stream": "^3.2.3" + }, + "dependencies": { + "looper": { + "version": "3.0.0", + "dev": true + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "dev": true, + "optional": true + }, + "string_decoder": { + "version": "1.1.1", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "dev": true + } + } + }, + "string.prototype.trim": { + "version": "1.2.3", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "strip-hex-prefix": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "swarm-js": { + "version": "0.1.40", + "dev": true, + "optional": true, + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "3.0.0", + "dev": true, + "optional": true + }, + "got": { + "version": "7.1.0", + "dev": true, + "optional": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "dev": true, + "optional": true + }, + "p-cancelable": { + "version": "0.3.0", + "dev": true, + "optional": true + }, + "prepend-http": { + "version": "1.0.4", + "dev": true, + "optional": true + }, + "url-parse-lax": { + "version": "1.0.0", + "dev": true, + "optional": true, + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "tape": { + "version": "4.13.3", + "dev": true, + "requires": { + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "is-regex": { + "version": "1.0.5", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "object-inspect": { + "version": "1.7.0", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "tar": { + "version": "4.4.13", + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "dependencies": { + "fs-minipass": { + "version": "1.2.7", + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "minipass": { + "version": "2.9.0", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "through": { + "version": "2.3.8", + "dev": true + }, + "through2": { + "version": "2.0.5", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "dev": true, + "optional": true + }, + "tmp": { + "version": "0.1.0", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + } + }, + "to-object-path": { + "version": "0.3.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-readable-stream": { + "version": "1.0.0", + "dev": true, + "optional": true + }, + "to-regex": { + "version": "3.0.2", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.5.0", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim-right": { + "version": "1.0.1", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "1.0.3", + "dev": true + }, + "tweetnacl-util": { + "version": "0.15.1", + "dev": true + }, + "type": { + "version": "1.2.0", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "dev": true, + "optional": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typewise": { + "version": "1.0.3", + "dev": true, + "requires": { + "typewise-core": "^1.2.0" + } + }, + "typewise-core": { + "version": "1.2.0", + "dev": true + }, + "typewiselite": { + "version": "1.0.0", + "dev": true + }, + "ultron": { + "version": "1.1.1", + "dev": true, + "optional": true + }, + "underscore": { + "version": "1.9.1", + "dev": true, + "optional": true + }, + "union-value": { + "version": "1.0.1", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "dev": true + } + } + }, + "universalify": { + "version": "0.1.2", + "dev": true + }, + "unorm": { + "version": "1.6.0", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "dev": true, + "optional": true + }, + "unset-value": { + "version": "1.0.0", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "dev": true + } + } + }, + "uri-js": { + "version": "4.4.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "dev": true + }, + "url-parse-lax": { + "version": "3.0.0", + "dev": true, + "optional": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-set-query": { + "version": "1.0.0", + "dev": true, + "optional": true + }, + "url-to-options": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "use": { + "version": "3.1.1", + "dev": true + }, + "utf-8-validate": { + "version": "5.0.4", + "dev": true, + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "utf8": { + "version": "3.0.0", + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "dev": true + }, + "util.promisify": { + "version": "1.1.1", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + } + }, + "utils-merge": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "uuid": { + "version": "3.4.0", + "dev": true + }, + "varint": { + "version": "5.0.2", + "dev": true, + "optional": true + }, + "vary": { + "version": "1.1.2", + "dev": true, + "optional": true + }, + "verror": { + "version": "1.10.0", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "web3": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "web3-bzz": "1.2.11", + "web3-core": "1.2.11", + "web3-eth": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-shh": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-bzz": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.9.1" + }, + "dependencies": { + "@types/node": { + "version": "12.19.12", + "dev": true, + "optional": true + } + } + }, + "web3-core": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-requestmanager": "1.2.11", + "web3-utils": "1.2.11" + }, + "dependencies": { + "@types/node": { + "version": "12.19.12", + "dev": true, + "optional": true + } + } + }, + "web3-core-helpers": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-core-method": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-core-promievent": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "eventemitter3": "4.0.4" + } + }, + "web3-core-requestmanager": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-providers-http": "1.2.11", + "web3-providers-ipc": "1.2.11", + "web3-providers-ws": "1.2.11" + } + }, + "web3-core-subscriptions": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" + } + }, + "web3-eth": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-accounts": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-eth-ens": "1.2.11", + "web3-eth-iban": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-eth-abi": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "@ethersproject/abi": "5.0.0-beta.153", + "underscore": "1.9.1", + "web3-utils": "1.2.11" + } + }, + "web3-eth-accounts": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "3.3.2", + "dev": true, + "optional": true + } + } + }, + "web3-eth-contract": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "@types/bn.js": "^4.11.5", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-eth-ens": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-eth-iban": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.11.9", + "web3-utils": "1.2.11" + } + }, + "web3-eth-personal": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" + }, + "dependencies": { + "@types/node": { + "version": "12.19.12", + "dev": true, + "optional": true + } + } + }, + "web3-net": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-provider-engine": { + "version": "14.2.1", + "dev": true, + "requires": { + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^3.0.0", + "eth-json-rpc-infura": "^3.1.0", + "eth-sig-util": "3.0.0", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.6.3", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "deferred-leveldown": { + "version": "1.2.2", + "dev": true, + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, + "eth-sig-util": { + "version": "1.4.2", + "dev": true, + "requires": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "ethereumjs-account": { + "version": "2.0.5", + "dev": true, + "requires": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-block": { + "version": "1.7.1", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereum-common": { + "version": "0.2.0", + "dev": true + } + } + }, + "ethereumjs-tx": { + "version": "1.3.7", + "dev": true, + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-vm": { + "version": "2.6.0", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-tx": { + "version": "2.1.2", + "dev": true, + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "isarray": { + "version": "0.0.1", + "dev": true + }, + "level-codec": { + "version": "7.0.1", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "level-ws": { + "version": "0.0.0", + "dev": true, + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "xtend": { + "version": "2.1.2", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "dev": true, + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + } + }, + "ltgt": { + "version": "2.2.1", + "dev": true + }, + "memdown": { + "version": "1.4.1", + "dev": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "dev": true + } + } + }, + "object-keys": { + "version": "0.4.0", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + }, + "semver": { + "version": "5.4.1", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "dev": true + }, + "ws": { + "version": "5.2.2", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "web3-providers-http": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "web3-core-helpers": "1.2.11", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" + } + }, + "web3-providers-ws": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "websocket": "^1.0.31" + } + }, + "web3-shh": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-net": "1.2.11" + } + }, + "web3-utils": { + "version": "1.2.11", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "dev": true, + "optional": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "websocket": { + "version": "1.0.32", + "dev": true, + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "whatwg-fetch": { + "version": "2.0.4", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "ws": { + "version": "3.3.3", + "dev": true, + "optional": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "dev": true, + "optional": true + } + } + }, + "xhr": { + "version": "2.6.0", + "dev": true, + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "dev": true, + "optional": true, + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "dev": true, + "optional": true, + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xhr2-cookies": { + "version": "1.1.0", + "dev": true, + "optional": true, + "requires": { + "cookiejar": "^2.1.1" + } + }, + "xtend": { + "version": "4.0.2", + "dev": true + }, + "yaeti": { + "version": "0.0.6", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "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-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "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 + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "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" + } + }, + "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" + } + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "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" + } + }, + "got": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "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-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 + }, + "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" + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "highlightjs-solidity": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz", + "integrity": "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "dev": true, + "requires": { + "punycode": "2.1.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "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-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.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.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "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==", + "dev": true + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" + }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", + "dev": true, + "requires": { + "lower-case": "^1.1.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "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-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", + "dev": true, + "requires": { + "upper-case": "^1.1.0" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "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" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "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-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "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": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "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 + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "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" + } + }, + "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 + }, + "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" + } + } + } + }, + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", + "dev": true, + "requires": { + "lower-case": "^1.1.2" + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true + }, + "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" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dev": true, + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "peer": true, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.5.tgz", + "integrity": "sha512-jbjfql+shJtAPrFoKxHOXip4xS+kul9W3OzfzzrqueWK2QMGon2bFH2opl6W9EagBThjEz+iysyi/swOoVfB/w==", + "dev": true + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", + "dev": true, + "requires": { + "mkdirp": "*" + } + }, + "mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "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 + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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 + }, + "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": "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" + } + }, + "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" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + } + } + }, + "mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", + "dev": true + }, + "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 + }, + "multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "dev": true, + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "dev": true, + "requires": { + "varint": "^5.0.0" + } + }, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "dev": true, + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } + } + }, + "nano-base32": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz", + "integrity": "sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw==", + "dev": true + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", + "dev": true + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" + }, + "nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "peer": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "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 + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" } }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "peer": true, - "dependencies": { - "is-hex-prefixed": "1.0.0", + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "dev": true, + "requires": { + "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true + } } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "peer": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "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 + }, + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", + "dev": true, + "requires": { + "http-https": "^1.0.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==", + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" + "requires": { + "ee-first": "1.1.1" } }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=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" } }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "requires": { + "lcid": "^1.0.0" } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "peer": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "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" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "peer": true + "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" + } }, - "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==", + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" } }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "peer": true, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" } }, - "node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "hasInstallScript": true, - "peer": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.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 + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "peer": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "peer": true + "parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "requires": { + "entities": "^4.4.0" + } }, - "node_modules/minimalistic-crypto-utils": { + "parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "requires": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", + "dev": true, + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "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/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "peer": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "peer": true + "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 }, - "node_modules/node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "peer": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "node_modules/pbkdf2": { + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "peer": true, - "dependencies": { + "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" } }, - "node_modules/randombytes": { + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", + "dev": true + }, + "pure-rand": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", + "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, + "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "peer": true, - "dependencies": { + "requires": { "safe-buffer": "^5.1.0" } }, - "node_modules/readable-stream": { + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "dependencies": { + "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, - "engines": { - "node": ">= 6" + "dependencies": { + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + } } }, - "node_modules/require-directory": { + "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 + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, - "node_modules/ripemd160": { + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "peer": true, - "dependencies": { + "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, - "node_modules/rlp": { + "ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", + "dev": true + }, + "rlp": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "peer": true, - "dependencies": { + "requires": { "bn.js": "^5.2.0" }, - "bin": { - "rlp": "bin/rlp" + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } } }, - "node_modules/rlp/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "peer": true - }, - "node_modules/safe-buffer": { + "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "node_modules/scrypt-js": { + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "peer": true + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, - "node_modules/secp256k1": { + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha512-aldIRgMozSJ/Gl6K6qmJZysRP82lz83Wb42vl4PWN8SaLFHIaOzLPc9nUUW2jQN88CuGm5q5HefJ9jZ3nWSmTw==", + "dev": true, + "requires": { + "pbkdf2": "^3.0.3" + } + }, + "secp256k1": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "peer": true, - "dependencies": { + "requires": { "elliptic": "^6.5.4", "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "peer": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "peer": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" } }, - "node_modules/signtypeddata-v5": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/signtypeddata-v5/-/signtypeddata-v5-5.0.1.tgz", - "integrity": "sha512-0vSt2YRyKj7Ywmt9PiOE9Dsmo5n/hysO1gaP4VX1Qu6J9KalItIfq//47uVgmXDeNVzfbRBjou+awwUgC2a/uw==", - "peer": true, - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, - "engines": { - "node": ">=12.0.0" + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "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 + } } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" + "sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" } }, - "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==", + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "randombytes": "^2.1.0" } }, - "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==", + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" } }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "peer": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "dev": true, + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" } }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "peer": true + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "peer": true + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, - "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "requires": { + "buffer": "6.0.3" }, - "engines": { - "node": ">=4.2.0" + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "peer": true + "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" + } }, - "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==", + "signtypeddata-v5": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/signtypeddata-v5/-/signtypeddata-v5-5.0.1.tgz", + "integrity": "sha512-0vSt2YRyKj7Ywmt9PiOE9Dsmo5n/hysO1gaP4VX1Qu6J9KalItIfq//47uVgmXDeNVzfbRBjou+awwUgC2a/uw==", + "peer": true, + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + } + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true + }, + "simple-get": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", + "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "dependencies": { + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "requires": { + "mimic-response": "^1.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==", + "snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", "dev": true, - "engines": { - "node": ">=10" + "requires": { + "no-case": "^2.2.0" } }, - "node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "solc": { + "version": "0.4.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", + "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==", "dev": true, - "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" + "requires": { + "fs-extra": "^0.30.0", + "memorystream": "^0.3.1", + "require-from-string": "^1.1.0", + "semver": "^5.3.0", + "yargs": "^4.7.1" }, - "engines": { - "node": ">=12" + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", + "dev": true, + "requires": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + } + }, + "yargs-parser": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", + "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" + } + } } }, - "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==", + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "peer": true, "requires": { - "@types/node": "*" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", - "peer": true + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "peer": true, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, "requires": { - "@types/node": "*" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "peer": true, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, "requires": { - "@types/node": "*" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "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==", + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "color-convert": "^2.0.1" + "safe-buffer": "~5.2.0" } }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "peer": true, + "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==", + "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, - "blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "peer": true - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "peer": true - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "peer": true + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "peer": true, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "is-utf8": "^0.2.0" } }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "peer": true, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", "requires": { - "base-x": "^3.0.2" + "is-hex-prefixed": "1.0.0" } }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "peer": true, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "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": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "has-flag": "^3.0.0" } }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "peer": true + "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 }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "peer": true, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", + "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" } }, - "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==", + "swarm-js": { + "version": "0.1.42", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", + "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^11.8.5", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "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==", + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", "dev": true, "requires": { - "color-name": "~1.1.4" + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, - "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==", + "testrpc": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", + "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==", "dev": true }, - "commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "dev": true }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "peer": true, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", + "dev": true, "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "no-case": "^2.2.0", + "upper-case": "^1.0.3" } }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "peer": 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==", + "dev": true, "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "is-number": "^7.0.0" } }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "peer": true, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "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==", + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "try-require": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/try-require/-/try-require-1.2.1.tgz", + "integrity": "sha512-aMzrGUIA/R2LwUgvsOusx+GTy8ERyNjpBzbWgS1Qx4oTFlXCMxY3PyyXbPE1pvrvK/CXpO+BBREEqrTkNroC+A==", "dev": true }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "safe-buffer": "^5.0.1" } }, - "ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "peer": true, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "peer": true + }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "peer": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "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-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" + "media-typer": "0.3.0", + "mime-types": "~2.1.24" } }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "peer": true, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "is-typedarray": "^1.0.0" } }, - "ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "peer": true, + "typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", + "dev": true, "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" + "upper-case": "^1.1.1" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "peer": true, + "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": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "punycode": "^2.1.0" } }, - "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==", + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==", "dev": true }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "peer": true, + "utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "dev": true, "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "node-gyp-build": "^4.3.0" } }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "peer": true, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true + }, + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, "requires": { "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" } }, - "hmac-drbg": { + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "peer": true, + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "peer": true + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true }, - "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==", + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "peer": true + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "peer": true, + "web3": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.2.tgz", + "integrity": "sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==", + "dev": true, "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "web3-bzz": "1.8.2", + "web3-core": "1.8.2", + "web3-eth": "1.8.2", + "web3-eth-personal": "1.8.2", + "web3-net": "1.8.2", + "web3-shh": "1.8.2", + "web3-utils": "1.8.2" } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "peer": true, + "web3-bzz": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.2.tgz", + "integrity": "sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==", + "dev": true, + "requires": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true + } + } + }, + "web3-core": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.2.tgz", + "integrity": "sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-requestmanager": "1.8.2", + "web3-utils": "1.8.2" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true + }, + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "dev": true + } + } + }, + "web3-core-helpers": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz", + "integrity": "sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==", + "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "web3-eth-iban": "1.8.2", + "web3-utils": "1.8.2" } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "peer": true + "web3-core-method": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.2.tgz", + "integrity": "sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==", + "dev": true, + "requires": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.8.2", + "web3-core-promievent": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-utils": "1.8.2" + } }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "peer": true + "web3-core-promievent": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz", + "integrity": "sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==", + "dev": true, + "requires": { + "eventemitter3": "4.0.4" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + } + } }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "peer": true + "web3-core-requestmanager": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz", + "integrity": "sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==", + "dev": true, + "requires": { + "util": "^0.12.5", + "web3-core-helpers": "1.8.2", + "web3-providers-http": "1.8.2", + "web3-providers-ipc": "1.8.2", + "web3-providers-ws": "1.8.2" + } }, - "node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "peer": true + "web3-core-subscriptions": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz", + "integrity": "sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==", + "dev": true, + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.2" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + } + } }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "peer": true, + "web3-eth": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.2.tgz", + "integrity": "sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==", + "dev": true, "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-eth-abi": "1.8.2", + "web3-eth-accounts": "1.8.2", + "web3-eth-contract": "1.8.2", + "web3-eth-ens": "1.8.2", + "web3-eth-iban": "1.8.2", + "web3-eth-personal": "1.8.2", + "web3-net": "1.8.2", + "web3-utils": "1.8.2" } }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "peer": true, + "web3-eth-abi": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz", + "integrity": "sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==", + "dev": true, "requires": { - "safe-buffer": "^5.1.0" + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.8.2" } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, + "web3-eth-accounts": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz", + "integrity": "sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==", + "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-utils": "1.8.2" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + } + } + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "dev": true + } } }, - "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 + "web3-eth-contract": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz", + "integrity": "sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-promievent": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-eth-abi": "1.8.2", + "web3-utils": "1.8.2" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "requires": { + "@types/node": "*" + } + } + } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "peer": true, + "web3-eth-ens": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz", + "integrity": "sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==", + "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-promievent": "1.8.2", + "web3-eth-abi": "1.8.2", + "web3-eth-contract": "1.8.2", + "web3-utils": "1.8.2" } }, - "rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "peer": true, + "web3-eth-iban": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz", + "integrity": "sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==", + "dev": true, "requires": { - "bn.js": "^5.2.0" + "bn.js": "^5.2.1", + "web3-utils": "1.8.2" }, "dependencies": { "bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "peer": true + "dev": true } } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "peer": true - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "peer": true + "web3-eth-personal": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz", + "integrity": "sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==", + "dev": true, + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.8.2", + "web3-core-helpers": "1.8.2", + "web3-core-method": "1.8.2", + "web3-net": "1.8.2", + "web3-utils": "1.8.2" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true + } + } }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "peer": true, + "web3-net": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.2.tgz", + "integrity": "sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==", + "dev": true, "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "web3-core": "1.8.2", + "web3-core-method": "1.8.2", + "web3-utils": "1.8.2" } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "peer": true + "web3-providers-http": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.2.tgz", + "integrity": "sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==", + "dev": true, + "requires": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.8.2" + } }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "peer": true, + "web3-providers-ipc": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", + "integrity": "sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==", + "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "oboe": "2.1.5", + "web3-core-helpers": "1.8.2" } }, - "signtypeddata-v5": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/signtypeddata-v5/-/signtypeddata-v5-5.0.1.tgz", - "integrity": "sha512-0vSt2YRyKj7Ywmt9PiOE9Dsmo5n/hysO1gaP4VX1Qu6J9KalItIfq//47uVgmXDeNVzfbRBjou+awwUgC2a/uw==", - "peer": true, + "web3-providers-ws": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz", + "integrity": "sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==", + "dev": true, "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.2", + "websocket": "^1.0.32" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + } } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "peer": true, + "web3-shh": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.2.tgz", + "integrity": "sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==", + "dev": true, "requires": { - "safe-buffer": "~5.2.0" + "web3-core": "1.8.2", + "web3-core-method": "1.8.2", + "web3-core-subscriptions": "1.8.2", + "web3-net": "1.8.2" } }, - "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==", + "web3-utils": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.2.tgz", + "integrity": "sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "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==", + "dev": true + }, + "websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } } }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "peer": true, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "requires": { - "is-hex-prefixed": "1.0.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "peer": true + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true }, - "tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "peer": true + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "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" + } }, - "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==", "dev": true }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "peer": true + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true }, "wrap-ansi": { "version": "7.0.0", @@ -1306,12 +31578,85 @@ "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 + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "requires": {} + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dev": true, + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "dev": true, + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "dev": true, + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "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.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", @@ -1332,6 +31677,32 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "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/package.json b/package.json index 8ea45f5..5d18c4b 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "types": "./index.d.ts", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "test": "mocha --timeout 10000", "build": "npx tsc index.ts --downlevelIteration --declaration" }, "repository": { @@ -38,6 +38,12 @@ "signtypeddata-v5": "^5.0.1" }, "devDependencies": { + "@openzeppelin/test-environment": "^0.1.9", + "@openzeppelin/test-helpers": "^0.5.16", + "chai": "^4.3.7", + "ethers": "^6.1.0", + "ganache-cli": "^6.12.2", + "mocha": "^10.2.0", "typescript": "^4.6.3", "yargs": "^17.7.1" } diff --git a/test.js b/test.js new file mode 100644 index 0000000..198ccc6 --- /dev/null +++ b/test.js @@ -0,0 +1,80 @@ +const { expect } = require('chai'); +const ganache = require('ganache-cli'); +const { ethers } = require('ethers'); +const { deploy } = require('@openzeppelin/test-environment'); +const { setupLoader } = require('@openzeppelin/contract-loader'); + +// Import the generateSolidity function from the module +const { generateSolidity } = require('./index.js'); + +// Define your types and messages for testing +const MessageTypes = { + EIP712Domain: [ + { name: 'name', type: 'string' }, + { name: 'version', type: 'string' }, + { name: 'chainId', type: 'uint256' }, + ], + Person: [ + { name: 'name', type: 'string' }, + { name: 'age', type: 'uint256' }, + ], +}; + +const message = { + types: MessageTypes, + primaryType: 'Person', + domain: { + name: 'Test Domain', + version: '1', + chainId: 1, + }, + message: { + name: 'Alice', + age: 30, + }, +}; + +// Generate the Solidity code +const entryTypes = ['Person']; +const solidityCode = generateSolidity(message, false, entryTypes); + +// Write the Solidity code to a file (for testing purposes) +const fs = require('fs'); +fs.writeFileSync('EIP712Decoder.sol', solidityCode); + +// Run the tests +describe('EIP712Decoder', function () { + let contract, accounts, signer, typedData; + + before(async function () { + // Set up a ganache provider with the generated Solidity code + const provider = new ethers.providers.Web3Provider(ganache.provider({})); + accounts = await provider.listAccounts(); + signer = provider.getSigner(accounts[0]); + + // Compile and deploy the contract + const loader = setupLoader({ provider, signer }).solidity; + const EIP712Decoder = loader.fromArtifact('EIP712Decoder', 'EIP712Decoder.sol'); + contract = await deploy(EIP712Decoder, []); + + // Create the typed data for testing + typedData = JSON.parse(JSON.stringify(message)); + typedData.domain.verifyingContract = contract.address; + }); + + it('should recover the correct signer', async function () { + // Sign the typed data + const signature = await signer._signTypedData(typedData.domain, typedData.types, typedData.message); + const sigBytes = ethers.utils.arrayify(signature); + + // Call the verifySignedPerson function + const isValid = await contract.verifySignedPerson({ + signature: sigBytes, + signer: accounts[0], + message: typedData.message, + }); + + // Check if the signer is valid + expect(isValid).to.be.true; + }); +}); From d9823f90f0482bf73c3c3ba0dfeb806056c5a768 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 14:49:20 -0700 Subject: [PATCH 06/19] Fix crypto error --- .nvmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..6276cf1 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v16.14.2 From ec394297c4f8d12c9572b5f32e012c7fe3217f55 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 14:49:30 -0700 Subject: [PATCH 07/19] Fix ethers breaking change --- package-lock.json | 296 ++++++++++++---------------------------------- package.json | 2 +- 2 files changed, 74 insertions(+), 224 deletions(-) diff --git a/package-lock.json b/package-lock.json index cfbc03f..831e7a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "eip712-codegen", "version": "4.0.4", "license": "MIT", "dependencies": { @@ -18,7 +19,7 @@ "@openzeppelin/test-environment": "^0.1.9", "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", - "ethers": "^6.1.0", + "ethers": "^5.7.2", "ganache-cli": "^6.12.2", "mocha": "^10.2.0", "typescript": "^4.6.3", @@ -28,12 +29,6 @@ "signtypeddata-v5": "^5.0.1" } }, - "node_modules/@adraffy/ens-normalize": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.8.9.tgz", - "integrity": "sha512-93OmGCV0vO8+JQ3FHG+gZk/MPHzzMPDRiCiFcCQNTCnHaaxsacO3ScTPGlu2wX2dOtgfalbchPcw1cOYYjHCYQ==", - "dev": true - }, "node_modules/@babel/runtime": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", @@ -91,54 +86,6 @@ "js-sha3": "^0.8.0" } }, - "node_modules/@ensdomains/ensjs/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, "node_modules/@ensdomains/resolver": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", @@ -968,30 +915,6 @@ "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, "node_modules/@openzeppelin/contract-loader": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", @@ -3006,14 +2929,14 @@ } }, "node_modules/ethers": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.1.0.tgz", - "integrity": "sha512-aC45YGbvgXt7Nses5WsdQwc1cUIrrQt32zeFShNW7ZT3RQCIHBnd4nmbE5sJmrp70uTdwkRHkr4cZr1D/YwFPg==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", "dev": true, "funding": [ { "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, { "type": "individual", @@ -3021,23 +2944,38 @@ } ], "dependencies": { - "@adraffy/ens-normalize": "1.8.9", - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.7.1", - "aes-js": "4.0.0-beta.3", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "engines": { - "node": ">=14.0.0" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/ethers/node_modules/aes-js": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.3.tgz", - "integrity": "sha512-/xJX0/VTPcbc5xQE2VUP91y1xN8q/rDfhEzLm+vLc3hYvb5+qHCnpJRuFcrKn63zumK/sCwYYzhG8HP78JYSTA==", - "dev": true - }, "node_modules/ethjs-abi": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", @@ -16176,7 +16114,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/signtypeddata-v5/-/signtypeddata-v5-5.0.1.tgz", "integrity": "sha512-0vSt2YRyKj7Ywmt9PiOE9Dsmo5n/hysO1gaP4VX1Qu6J9KalItIfq//47uVgmXDeNVzfbRBjou+awwUgC2a/uw==", - "peer": true, "dependencies": { "ethereumjs-abi": "^0.6.8", "ethereumjs-util": "^6.2.1", @@ -16856,12 +16793,6 @@ "integrity": "sha512-aMzrGUIA/R2LwUgvsOusx+GTy8ERyNjpBzbWgS1Qx4oTFlXCMxY3PyyXbPE1pvrvK/CXpO+BBREEqrTkNroC+A==", "dev": true }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -16877,14 +16808,12 @@ "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "peer": true + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, "node_modules/tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "peer": true + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" }, "node_modules/type": { "version": "1.2.0", @@ -17688,27 +17617,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xhr": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", @@ -17855,12 +17763,6 @@ } }, "dependencies": { - "@adraffy/ens-normalize": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.8.9.tgz", - "integrity": "sha512-93OmGCV0vO8+JQ3FHG+gZk/MPHzzMPDRiCiFcCQNTCnHaaxsacO3ScTPGlu2wX2dOtgfalbchPcw1cOYYjHCYQ==", - "dev": true - }, "@babel/runtime": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", @@ -17912,46 +17814,6 @@ "eth-ens-namehash": "^2.0.8", "ethers": "^5.0.13", "js-sha3": "^0.8.0" - }, - "dependencies": { - "ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "dev": true, - "requires": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - } } }, "@ensdomains/resolver": { @@ -18474,18 +18336,6 @@ "@ethersproject/strings": "^5.7.0" } }, - "@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "dev": true - }, - "@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "dev": true - }, "@openzeppelin/contract-loader": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", @@ -20191,25 +20041,41 @@ } }, "ethers": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.1.0.tgz", - "integrity": "sha512-aC45YGbvgXt7Nses5WsdQwc1cUIrrQt32zeFShNW7ZT3RQCIHBnd4nmbE5sJmrp70uTdwkRHkr4cZr1D/YwFPg==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", "dev": true, "requires": { - "@adraffy/ens-normalize": "1.8.9", - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.7.1", - "aes-js": "4.0.0-beta.3", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "dependencies": { - "aes-js": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.3.tgz", - "integrity": "sha512-/xJX0/VTPcbc5xQE2VUP91y1xN8q/rDfhEzLm+vLc3hYvb5+qHCnpJRuFcrKn63zumK/sCwYYzhG8HP78JYSTA==", - "dev": true - } + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, "ethjs-abi": { @@ -30312,7 +30178,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/signtypeddata-v5/-/signtypeddata-v5-5.0.1.tgz", "integrity": "sha512-0vSt2YRyKj7Ywmt9PiOE9Dsmo5n/hysO1gaP4VX1Qu6J9KalItIfq//47uVgmXDeNVzfbRBjou+awwUgC2a/uw==", - "peer": true, "requires": { "ethereumjs-abi": "^0.6.8", "ethereumjs-util": "^6.2.1", @@ -30866,12 +30731,6 @@ "integrity": "sha512-aMzrGUIA/R2LwUgvsOusx+GTy8ERyNjpBzbWgS1Qx4oTFlXCMxY3PyyXbPE1pvrvK/CXpO+BBREEqrTkNroC+A==", "dev": true }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -30884,14 +30743,12 @@ "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "peer": true + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, "tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "peer": true + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" }, "type": { "version": "1.2.0", @@ -31584,13 +31441,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "requires": {} - }, "xhr": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", diff --git a/package.json b/package.json index 5d18c4b..0bcac7c 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@openzeppelin/test-environment": "^0.1.9", "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", - "ethers": "^6.1.0", + "ethers": "^5.7.2", "ganache-cli": "^6.12.2", "mocha": "^10.2.0", "typescript": "^4.6.3", From b6e997e262ecce9cbccd99929c97a70c86751496 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 14:49:50 -0700 Subject: [PATCH 08/19] Ignore generated file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2752eb9..61ced2c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules/ .DS_Store +EIP712Decoder.sol From c9b5225d713b5b73e394dd53bfdea77d3b379c18 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 15:00:15 -0700 Subject: [PATCH 09/19] Fixed more gpt bugs --- .gitignore | 1 - EIP712Decoder.sol | 97 +++++++++++++++++++++++++++++++++++++++++++++++ test.js | 10 ++--- 3 files changed, 102 insertions(+), 6 deletions(-) create mode 100644 EIP712Decoder.sol diff --git a/.gitignore b/.gitignore index 61ced2c..2752eb9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ node_modules/ .DS_Store -EIP712Decoder.sol diff --git a/EIP712Decoder.sol b/EIP712Decoder.sol new file mode 100644 index 0000000..5877ace --- /dev/null +++ b/EIP712Decoder.sol @@ -0,0 +1,97 @@ +pragma solidity ^0.8.13; +// SPDX-License-Identifier: MIT + + +struct EIP712Domain { + string name; + string version; + uint256 chainId; +} + +bytes32 constant EIP712DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId)"); + + +struct signedPerson { + bytes signature; + address signer; + Person message; +} + + +struct Person { + string name; + uint256 age; +} + +bytes32 constant PERSON_TYPEHASH = keccak256("Person(string name,uint256 age)"); + + +contract EIP712Decoder { + + /** + * @dev Recover signer address from a message by using their signature + * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. + * @param sig bytes signature, the signature is generated using web3.eth.sign() + */ + function recover(bytes32 hash, bytes memory sig) internal pure returns (address) { + bytes32 r; + bytes32 s; + uint8 v; + + // Check the signature length + if (sig.length != 65) { + return (address(0)); + } + + // Divide the signature in r, s and v variables + assembly { + r := mload(add(sig, 32)) + s := mload(add(sig, 64)) + v := byte(0, mload(add(sig, 96))) + } + // Version of signature should be 27 or 28, but 0 and 1 are also possible versions + if (v < 27) { + v += 27; + } + + // If the version is correct return the signer address + if (v != 27 && v != 28) { + return (address(0)); + } else { + return ecrecover(hash, v, r, s); + } + } + + function GET_EIP712DOMAIN_PACKETHASH (EIP712Domain memory _input) public pure returns (bytes32) { + + bytes memory encoded = abi.encode( + EIP712DOMAIN_TYPEHASH, + _input.name, + _input.version, + _input.chainId + ); + + return keccak256(encoded); + } + + function GET_PERSON_PACKETHASH (Person memory _input) public pure returns (bytes32) { + + bytes memory encoded = abi.encode( + PERSON_TYPEHASH, + _input.name, + _input.age + ); + + return keccak256(encoded); + } + + function verifySignedPerson(signedPerson memory _input) public pure returns (bool) { + bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message); + bytes32 ethSignedMessageHash = getEthSignedMessageHash(packetHash); + address recoveredSigner = recover(ethSignedMessageHash, _input.signature); + return recoveredSigner == _input.signer; + } + + +} + diff --git a/test.js b/test.js index 198ccc6..f37cbf8 100644 --- a/test.js +++ b/test.js @@ -1,8 +1,9 @@ const { expect } = require('chai'); const ganache = require('ganache-cli'); -const { ethers } = require('ethers'); -const { deploy } = require('@openzeppelin/test-environment'); -const { setupLoader } = require('@openzeppelin/contract-loader'); +const ethers = require('ethers'); +const testEnv = require('@openzeppelin/test-environment'); +const testContract = testEnv.contract; +const { deploy } = testEnv; // Import the generateSolidity function from the module const { generateSolidity } = require('./index.js'); @@ -53,8 +54,7 @@ describe('EIP712Decoder', function () { signer = provider.getSigner(accounts[0]); // Compile and deploy the contract - const loader = setupLoader({ provider, signer }).solidity; - const EIP712Decoder = loader.fromArtifact('EIP712Decoder', 'EIP712Decoder.sol'); + const EIP712Decoder = testContract.fromArtifact('EIP712Decoder', './EIP712Decoder.sol'); // <-- Update this line contract = await deploy(EIP712Decoder, []); // Create the typed data for testing From 2801e7b94d9bc7fce2c535555b66053ba55c130e Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 16:14:24 -0700 Subject: [PATCH 10/19] Make entrypoint 1271 compatible --- .gitignore | 1 + .../EIP712Decoder.sol | 47 +- hardhat.config.js | 5 + index.js | 4 +- index.ts | 47 +- package-lock.json | 2946 ++++++++++++++++- package.json | 3 + test.js | 16 +- 8 files changed, 2914 insertions(+), 155 deletions(-) rename EIP712Decoder.sol => contracts/EIP712Decoder.sol (61%) create mode 100644 hardhat.config.js diff --git a/.gitignore b/.gitignore index 2752eb9..5b6cb77 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules/ .DS_Store +cache/ diff --git a/EIP712Decoder.sol b/contracts/EIP712Decoder.sol similarity index 61% rename from EIP712Decoder.sol rename to contracts/EIP712Decoder.sol index 5877ace..c546726 100644 --- a/EIP712Decoder.sol +++ b/contracts/EIP712Decoder.sol @@ -26,6 +26,28 @@ struct Person { bytes32 constant PERSON_TYPEHASH = keccak256("Person(string name,uint256 age)"); +contract ERC1271Contract { + + // bytes4(keccak256("isValidSignature(bytes32,bytes)") + bytes4 constant internal MAGICVALUE = 0x1626ba7e; + + /** + * @dev Should return whether the signature provided is valid for the provided hash + * @param _hash Hash of the data to be signed + * @param _signature Signature byte array associated with _hash + * + * MUST return the bytes4 magic value 0x1626ba7e when function passes. + * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) + * MUST allow external calls + */ + function isValidSignature( + bytes32 _hash, + bytes memory _signature) + public + view + returns (bytes4 magicValue); +} + contract EIP712Decoder { /** @@ -85,11 +107,28 @@ contract EIP712Decoder { return keccak256(encoded); } - function verifySignedPerson(signedPerson memory _input) public pure returns (bool) { + function verifySignedPerson(signedPerson memory _input) public view returns (address) { bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message); - bytes32 ethSignedMessageHash = getEthSignedMessageHash(packetHash); - address recoveredSigner = recover(ethSignedMessageHash, _input.signature); - return recoveredSigner == _input.signer; + bytes32 digest = keccak256( + abi.encodePacked( + "\x19\x01", + domainHash, + packetHash + ) + ); + + if (_input.signer == 0x0000000000000000000000000000000000000000) { + address recoveredSigner = recover( + digest, + _input.signature + ); + return recoveredSigner; + } else { + // EIP-1271 signature verification + bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature); + require(result == 0x1626ba7e, "INVALID_SIGNATURE"); + return _input.signer; + } } diff --git a/hardhat.config.js b/hardhat.config.js new file mode 100644 index 0000000..04f4273 --- /dev/null +++ b/hardhat.config.js @@ -0,0 +1,5 @@ +require("@nomiclabs/hardhat-ethers"); + +module.exports = { + solidity: "0.8.13", +}; diff --git a/index.js b/index.js index 58ee34d..5942832 100644 --- a/index.js +++ b/index.js @@ -29,7 +29,7 @@ var path = require('path'); var encodeType = require('signtypeddata-v5').TypedDataUtils.encodeType; var generateFile = function (types, methods, log) { if (log === void 0) { log = false; } - return "pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n".concat(log ? 'import "hardhat/console.log";' : '', "\n\n").concat(types, "\n\ncontract EIP712Decoder {\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n").concat(methods, "\n\n}\n\n"); + return "pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n".concat(log ? 'import "hardhat/console.log";' : '', "\n\n").concat(types, "\n\ncontract ERC1271Contract {\n\n // bytes4(keccak256(\"isValidSignature(bytes32,bytes)\")\n bytes4 constant internal MAGICVALUE = 0x1626ba7e;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n returns (bytes4 magicValue);\n}\n\ncontract EIP712Decoder {\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n").concat(methods, "\n\n}\n\n"); }; var LOGGING_ENABLED = false; function generateCodeFrom(types, entryTypes) { @@ -103,7 +103,7 @@ function generateSolidity(typeDef, shouldLog, entryTypes) { return newFileString; } function generateEntrypointMethods(entryTypes) { - return entryTypes.map(function (entryType) { return "\n function verifySigned".concat(entryType, "(signed").concat(entryType, " memory _input) public pure returns (bool) {\n bytes32 packetHash = ").concat(packetHashGetterName(entryType), "(_input.message);\n bytes32 ethSignedMessageHash = getEthSignedMessageHash(packetHash);\n address recoveredSigner = recover(ethSignedMessageHash, _input.signature);\n return recoveredSigner == _input.signer;\n }\n "); }).join('\n'); + return entryTypes.map(function (entryType) { return "\n function verifySigned".concat(entryType, "(signed").concat(entryType, " memory _input) public view returns (address) {\n bytes32 packetHash = ").concat(packetHashGetterName(entryType), "(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n domainHash,\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n "); }).join('\n'); } module.exports = { generateCodeFrom: generateCodeFrom, diff --git a/index.ts b/index.ts index 927ca07..7d9110d 100644 --- a/index.ts +++ b/index.ts @@ -49,6 +49,28 @@ ${log ? 'import "hardhat/console.log";' : ''} ${types} +contract ERC1271Contract { + + // bytes4(keccak256("isValidSignature(bytes32,bytes)") + bytes4 constant internal MAGICVALUE = 0x1626ba7e; + + /** + * @dev Should return whether the signature provided is valid for the provided hash + * @param _hash Hash of the data to be signed + * @param _signature Signature byte array associated with _hash + * + * MUST return the bytes4 magic value 0x1626ba7e when function passes. + * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) + * MUST allow external calls + */ + function isValidSignature( + bytes32 _hash, + bytes memory _signature) + public + view + returns (bytes4 magicValue); +} + contract EIP712Decoder { /** @@ -217,11 +239,28 @@ function generateSolidity < function generateEntrypointMethods(entryTypes) { return entryTypes.map((entryType) => ` - function verifySigned${entryType}(signed${entryType} memory _input) public pure returns (bool) { + function verifySigned${entryType}(signed${entryType} memory _input) public view returns (address) { bytes32 packetHash = ${packetHashGetterName(entryType)}(_input.message); - bytes32 ethSignedMessageHash = getEthSignedMessageHash(packetHash); - address recoveredSigner = recover(ethSignedMessageHash, _input.signature); - return recoveredSigner == _input.signer; + bytes32 digest = keccak256( + abi.encodePacked( + "\\x19\\x01", + domainHash, + packetHash + ) + ); + + if (_input.signer == 0x0000000000000000000000000000000000000000) { + address recoveredSigner = recover( + digest, + _input.signature + ); + return recoveredSigner; + } else { + // EIP-1271 signature verification + bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature); + require(result == 0x1626ba7e, "INVALID_SIGNATURE"); + return _input.signer; + } } `).join('\n'); } diff --git a/package-lock.json b/package-lock.json index 831e7a8..31eb060 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,11 +16,14 @@ "712gen": "cli.js" }, "devDependencies": { + "@nomiclabs/hardhat-ethers": "^2.2.2", "@openzeppelin/test-environment": "^0.1.9", "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", "ethers": "^5.7.2", "ganache-cli": "^6.12.2", + "hardhat": "^2.13.0", + "hardhat-ethers": "^1.0.1", "mocha": "^10.2.0", "typescript": "^4.6.3", "yargs": "^17.7.1" @@ -915,6 +918,435 @@ "@ethersproject/strings": "^5.7.0" } }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dev": true, + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@nomicfoundation/ethereumjs-block": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz", + "integrity": "sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-blockchain": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz", + "integrity": "sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-ethash": "^2.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-blockchain/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, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz", + "integrity": "sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "crc-32": "^1.2.0" + } + }, + "node_modules/@nomicfoundation/ethereumjs-ethash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz", + "integrity": "sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.0.23", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-evm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz", + "integrity": "sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@types/async-eventemitter": "^0.2.1", + "async-eventemitter": "^0.2.4", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz", + "integrity": "sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw==", + "dev": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-statemanager": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz", + "integrity": "sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "functional-red-black-tree": "^1.0.1" + } + }, + "node_modules/@nomicfoundation/ethereumjs-trie": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz", + "integrity": "sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz", + "integrity": "sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz", + "integrity": "sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "^4.0.0-beta.2", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-vm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz", + "integrity": "sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-blockchain": "^6.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-evm": "^1.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-statemanager": "^1.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@types/async-eventemitter": "^0.2.1", + "async-eventemitter": "^0.2.4", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "functional-red-black-tree": "^1.0.1", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "dev": true, + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomiclabs/hardhat-ethers": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.2.tgz", + "integrity": "sha512-NLDlDFL2us07C0jB/9wzvR0kuLivChJWCXTKcj3yqjZqMoYp7g7wwS157F70VHx/+9gHIBGzak5pKDwG8gEefA==", + "dev": true, + "peerDependencies": { + "ethers": "^5.0.0", + "hardhat": "^2.0.0" + } + }, "node_modules/@openzeppelin/contract-loader": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", @@ -1014,6 +1446,162 @@ "semver": "bin/semver" } }, + "node_modules/@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -1338,6 +1926,12 @@ "node": ">=4" } }, + "node_modules/@types/async-eventemitter": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz", + "integrity": "sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg==", + "dev": true + }, "node_modules/@types/bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", @@ -1373,6 +1967,12 @@ "@types/node": "*" } }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true + }, "node_modules/@types/node": { "version": "18.11.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", @@ -1403,12 +2003,66 @@ "@types/node": "*" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/abortcontroller-polyfill": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", "dev": true }, + "node_modules/abstract-level": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/abstract-level/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -1422,12 +2076,46 @@ "node": ">= 0.6" } }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, "node_modules/aes-js": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", "dev": true }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1453,6 +2141,21 @@ "node": ">=6" } }, + "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, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "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", @@ -1529,6 +2232,24 @@ "node": "*" } }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dev": true, + "dependencies": { + "async": "^2.4.0" + } + }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -1654,6 +2375,27 @@ "url": "https://opencollective.com/bigjs" } }, + "node_modules/bigint-crypto-utils": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.1.8.tgz", + "integrity": "sha512-+VMV9Laq8pXLBKKKK49nOoq9bfR3j7NNQAtbA617a4nw9bVLo8rsqkKMBgM2AJWlNX9fEIyYaYX+d0laqYV4tw==", + "dev": true, + "dependencies": { + "bigint-mod-arith": "^3.1.0" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/bigint-mod-arith": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz", + "integrity": "sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ==", + "dev": true, + "engines": { + "node": ">=10.4.0" + } + }, "node_modules/bignumber.js": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", @@ -1759,6 +2501,18 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, + "node_modules/browser-level": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", + "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "dev": true, + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -1820,6 +2574,12 @@ "ieee754": "^1.1.13" } }, + "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 + }, "node_modules/buffer-to-arraybuffer": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", @@ -1844,6 +2604,18 @@ "node": ">=6.14.2" } }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -1942,6 +2714,15 @@ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, + "node_modules/catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/cbor": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", @@ -2139,6 +2920,12 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, "node_modules/cids": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", @@ -2183,6 +2970,32 @@ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", "dev": true }, + "node_modules/classic-level": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.2.0.tgz", + "integrity": "sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2257,6 +3070,12 @@ "node": ">= 0.8" } }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, "node_modules/commander": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", @@ -2711,7 +3530,19 @@ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { - "once": "^1.4.0" + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" } }, "node_modules/entities": { @@ -2726,6 +3557,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -3036,6 +3876,15 @@ "npm": ">=3" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -3284,6 +4133,26 @@ "flat": "cli.js" } }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -3331,6 +4200,12 @@ "node": ">= 0.6" } }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -3390,6 +4265,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, "node_modules/ganache-cli": { "version": "6.12.2", "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz", @@ -13693,116 +14574,417 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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==", + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hardhat": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.13.0.tgz", + "integrity": "sha512-ZlzBOLML1QGlm6JWyVAG8lVTEAoOaVm1in/RU2zoGAnYEoD1Rp4T+ZMvrLNhHaaeS9hfjJ1gJUBfiDr4cx+htQ==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-blockchain": "^6.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-evm": "^1.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-statemanager": "^1.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@nomicfoundation/ethereumjs-vm": "^6.0.0", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "qs": "^6.7.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/hardhat-ethers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hardhat-ethers/-/hardhat-ethers-1.0.1.tgz", + "integrity": "sha512-zS7VPEwlYwIbMZG/PTDM9pF1cagmxNGxA6hLCOFQt/wYPDWgw5eUQNchi9fRbd+k6ZIgm3UypsjK60Qqlx7Ogw==", + "dev": true + }, + "node_modules/hardhat/node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/hardhat/node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "node_modules/hardhat/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/hardhat/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/hardhat/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/hardhat/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hardhat/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "path-parse": "^1.0.6" }, - "engines": { - "node": ">= 6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob/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==", + "node_modules/hardhat/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/hardhat/node_modules/solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solcjs" }, "engines": { - "node": "*" + "node": ">=8.0.0" } }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "node_modules/hardhat/node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", "dev": true, "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/hardhat/node_modules/solc/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "node_modules/hardhat/node_modules/solc/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "bin": { + "semver": "bin/semver" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "node_modules/hardhat/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "engines": { - "node": ">=4" + "node": ">= 4.0.0" } }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", + "node_modules/hardhat/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/has": { @@ -14000,6 +15182,19 @@ "node": ">=10.19.0" } }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -14044,6 +15239,21 @@ } ] }, + "node_modules/immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "dev": true + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -14068,6 +15278,15 @@ "node": ">=0.10.0" } }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "dependencies": { + "fp-ts": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -14111,6 +15330,29 @@ "node": ">=8" } }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -14399,6 +15641,69 @@ "node": ">=0.10.0" } }, + "node_modules/level": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", + "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "dev": true, + "dependencies": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/level" + } + }, + "node_modules/level-supports": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", + "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/level-transcoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", + "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/level-transcoder/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -14540,6 +15845,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -14552,6 +15863,15 @@ "node": ">=10" } }, + "node_modules/mcl-wasm": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", + "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "dev": true, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -14571,6 +15891,20 @@ "node": ">= 0.6" } }, + "node_modules/memory-level": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", + "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "dev": true, + "dependencies": { + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -14730,6 +16064,15 @@ "node": ">=4" } }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, + "dependencies": { + "obliterator": "^2.0.0" + } + }, "node_modules/mocha": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", @@ -14926,6 +16269,15 @@ "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", "dev": true }, + "node_modules/module-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", + "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -14999,6 +16351,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-macros": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", + "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", + "dev": true + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -15177,6 +16535,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true + }, "node_modules/oboe": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", @@ -15219,6 +16583,15 @@ "node": ">=0.10.0" } }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -15258,10 +16631,25 @@ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-queue": { @@ -15589,6 +16977,26 @@ "node": ">=0.10.0" } }, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -15871,6 +17279,35 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, + "node_modules/run-parallel-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -16357,6 +17794,25 @@ "lodash.assign": "^4.0.6" } }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -16420,6 +17876,27 @@ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -16429,6 +17906,15 @@ "node": ">= 0.8" } }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -16738,6 +18224,18 @@ "upper-case": "^1.0.3" } }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -16793,6 +18291,18 @@ "integrity": "sha512-aMzrGUIA/R2LwUgvsOusx+GTy8ERyNjpBzbWgS1Qx4oTFlXCMxY3PyyXbPE1pvrvK/CXpO+BBREEqrTkNroC+A==", "dev": true }, + "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 + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -16830,6 +18340,18 @@ "node": ">=4" } }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -16871,6 +18393,18 @@ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", "dev": true }, + "node_modules/undici": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz", + "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==", + "dev": true, + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=12.18" + } + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -17617,6 +19151,27 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xhr": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", @@ -18259,83 +19814,373 @@ "@ethersproject/logger": "^5.7.0" } }, - "@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dev": true, + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + } + }, + "@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true + }, + "@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true + }, + "@nomicfoundation/ethereumjs-block": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz", + "integrity": "sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA==", + "dev": true, + "requires": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3" + } + }, + "@nomicfoundation/ethereumjs-blockchain": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz", + "integrity": "sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw==", + "dev": true, + "requires": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-ethash": "^2.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.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 + } + } + }, + "@nomicfoundation/ethereumjs-common": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz", + "integrity": "sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA==", + "dev": true, + "requires": { + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "crc-32": "^1.2.0" + } + }, + "@nomicfoundation/ethereumjs-ethash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz", + "integrity": "sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew==", + "dev": true, + "requires": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.0.23", + "ethereum-cryptography": "0.1.3" + } + }, + "@nomicfoundation/ethereumjs-evm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz", + "integrity": "sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q==", + "dev": true, + "requires": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@types/async-eventemitter": "^0.2.1", + "async-eventemitter": "^0.2.4", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + } + }, + "@nomicfoundation/ethereumjs-rlp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz", + "integrity": "sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw==", + "dev": true + }, + "@nomicfoundation/ethereumjs-statemanager": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz", + "integrity": "sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ==", "dev": true, "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "functional-red-black-tree": "^1.0.1" } }, - "@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "@nomicfoundation/ethereumjs-trie": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz", + "integrity": "sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A==", "dev": true, "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3", + "readable-stream": "^3.6.0" } }, - "@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "@nomicfoundation/ethereumjs-tx": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz", + "integrity": "sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w==", "dev": true, "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3" } }, - "@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "@nomicfoundation/ethereumjs-util": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz", + "integrity": "sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A==", "dev": true, "requires": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@nomicfoundation/ethereumjs-rlp": "^4.0.0-beta.2", + "ethereum-cryptography": "0.1.3" } }, - "@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "@nomicfoundation/ethereumjs-vm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz", + "integrity": "sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w==", + "dev": true, + "requires": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-blockchain": "^6.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-evm": "^1.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-statemanager": "^1.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@types/async-eventemitter": "^0.2.1", + "async-eventemitter": "^0.2.4", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "functional-red-black-tree": "^1.0.1", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + } + }, + "@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", "dev": true, "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" } }, + "@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "dev": true, + "optional": true + }, + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "dev": true, + "optional": true + }, + "@nomiclabs/hardhat-ethers": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.2.tgz", + "integrity": "sha512-NLDlDFL2us07C0jB/9wzvR0kuLivChJWCXTKcj3yqjZqMoYp7g7wwS157F70VHx/+9gHIBGzak5pKDwG8gEefA==", + "dev": true, + "requires": {} + }, "@openzeppelin/contract-loader": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz", @@ -18427,6 +20272,122 @@ } } }, + "@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "dev": true + }, + "@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, + "requires": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, + "requires": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "requires": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "requires": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + } + } + }, + "@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true + }, + "@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "requires": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + } + }, "@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -18740,6 +20701,12 @@ } } }, + "@types/async-eventemitter": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz", + "integrity": "sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg==", + "dev": true + }, "@types/bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", @@ -18775,6 +20742,12 @@ "@types/node": "*" } }, + "@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true + }, "@types/node": { "version": "18.11.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", @@ -18805,12 +20778,48 @@ "@types/node": "*" } }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, "abortcontroller-polyfill": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", "dev": true }, + "abstract-level": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -18821,12 +20830,37 @@ "negotiator": "0.6.3" } }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, "aes-js": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", "dev": true }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -18845,6 +20879,15 @@ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true }, + "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" + } + }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -18903,6 +20946,24 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dev": true, + "requires": { + "async": "^2.4.0" + } + }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -18994,6 +21055,21 @@ "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", "dev": true }, + "bigint-crypto-utils": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.1.8.tgz", + "integrity": "sha512-+VMV9Laq8pXLBKKKK49nOoq9bfR3j7NNQAtbA617a4nw9bVLo8rsqkKMBgM2AJWlNX9fEIyYaYX+d0laqYV4tw==", + "dev": true, + "requires": { + "bigint-mod-arith": "^3.1.0" + } + }, + "bigint-mod-arith": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz", + "integrity": "sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ==", + "dev": true + }, "bignumber.js": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", @@ -19088,6 +21164,18 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, + "browser-level": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", + "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "dev": true, + "requires": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -19135,6 +21223,12 @@ "ieee754": "^1.1.13" } }, + "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 + }, "buffer-to-arraybuffer": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", @@ -19155,6 +21249,15 @@ "node-gyp-build": "^4.3.0" } }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "requires": { + "streamsearch": "^1.1.0" + } + }, "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -19231,6 +21334,12 @@ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, + "catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "dev": true + }, "cbor": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", @@ -19391,6 +21500,12 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, "cids": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", @@ -19431,6 +21546,25 @@ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", "dev": true }, + "classic-level": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.2.0.tgz", + "integrity": "sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg==", + "dev": true, + "requires": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -19487,6 +21621,12 @@ "delayed-stream": "~1.0.0" } }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, "commander": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", @@ -19841,12 +21981,27 @@ "once": "^1.4.0" } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, "entities": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -20130,6 +22285,12 @@ "strip-hex-prefix": "1.0.0" } }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -20346,6 +22507,12 @@ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true + }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -20384,6 +22551,12 @@ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true }, + "fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -20430,6 +22603,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, "ganache-cli": { "version": "6.12.2", "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz", @@ -28400,6 +30579,248 @@ "har-schema": "^2.0.0" } }, + "hardhat": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.13.0.tgz", + "integrity": "sha512-ZlzBOLML1QGlm6JWyVAG8lVTEAoOaVm1in/RU2zoGAnYEoD1Rp4T+ZMvrLNhHaaeS9hfjJ1gJUBfiDr4cx+htQ==", + "dev": true, + "requires": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-blockchain": "^6.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-evm": "^1.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-statemanager": "^1.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@nomicfoundation/ethereumjs-vm": "^6.0.0", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "qs": "^6.7.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, + "requires": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, + "requires": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "hardhat-ethers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hardhat-ethers/-/hardhat-ethers-1.0.1.tgz", + "integrity": "sha512-zS7VPEwlYwIbMZG/PTDM9pF1cagmxNGxA6hLCOFQt/wYPDWgw5eUQNchi9fRbd+k6ZIgm3UypsjK60Qqlx7Ogw==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -28551,6 +30972,16 @@ "resolve-alpn": "^1.2.0" } }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -28575,6 +31006,18 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, + "immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -28596,6 +31039,15 @@ "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", "dev": true }, + "io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "requires": { + "fp-ts": "^1.0.0" + } + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -28627,6 +31079,12 @@ "binary-extensions": "^2.0.0" } }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -28854,6 +31312,44 @@ "invert-kv": "^1.0.0" } }, + "level": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", + "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "dev": true, + "requires": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + } + }, + "level-supports": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", + "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "dev": true + }, + "level-transcoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", + "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -28967,6 +31463,12 @@ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -28976,6 +31478,12 @@ "yallist": "^4.0.0" } }, + "mcl-wasm": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", + "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "dev": true + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -28992,6 +31500,17 @@ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true }, + "memory-level": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", + "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "dev": true, + "requires": { + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" + } + }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -29113,6 +31632,15 @@ "mkdirp": "*" } }, + "mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, + "requires": { + "obliterator": "^2.0.0" + } + }, "mocha": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", @@ -29252,6 +31780,12 @@ "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", "dev": true }, + "module-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", + "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -29318,6 +31852,12 @@ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, + "napi-macros": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", + "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", + "dev": true + }, "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -29447,6 +31987,12 @@ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true }, + "obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true + }, "oboe": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", @@ -29483,6 +32029,12 @@ "lcid": "^1.0.0" } }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, "p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -29513,6 +32065,15 @@ "p-limit": "^2.2.0" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -29756,6 +32317,12 @@ "strict-uri-encode": "^1.0.0" } }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -29982,6 +32549,21 @@ } } }, + "run-parallel-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -30378,6 +32960,22 @@ } } }, + "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.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -30435,12 +33033,35 @@ } } }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "requires": { + "type-fest": "^0.7.1" + }, + "dependencies": { + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true + } + } + }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true + }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -30686,6 +33307,15 @@ "upper-case": "^1.0.3" } }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -30731,6 +33361,18 @@ "integrity": "sha512-aMzrGUIA/R2LwUgvsOusx+GTy8ERyNjpBzbWgS1Qx4oTFlXCMxY3PyyXbPE1pvrvK/CXpO+BBREEqrTkNroC+A==", "dev": true }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -30762,6 +33404,12 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "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 + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -30793,6 +33441,15 @@ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", "dev": true }, + "undici": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz", + "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==", + "dev": true, + "requires": { + "busboy": "^1.6.0" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -31441,6 +34098,13 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "requires": {} + }, "xhr": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", diff --git a/package.json b/package.json index 0bcac7c..db977b1 100644 --- a/package.json +++ b/package.json @@ -38,11 +38,14 @@ "signtypeddata-v5": "^5.0.1" }, "devDependencies": { + "@nomiclabs/hardhat-ethers": "^2.2.2", "@openzeppelin/test-environment": "^0.1.9", "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", "ethers": "^5.7.2", "ganache-cli": "^6.12.2", + "hardhat": "^2.13.0", + "hardhat-ethers": "^1.0.1", "mocha": "^10.2.0", "typescript": "^4.6.3", "yargs": "^17.7.1" diff --git a/test.js b/test.js index f37cbf8..5b62986 100644 --- a/test.js +++ b/test.js @@ -4,6 +4,7 @@ const ethers = require('ethers'); const testEnv = require('@openzeppelin/test-environment'); const testContract = testEnv.contract; const { deploy } = testEnv; +const hre = require('hardhat'); // Import the generateSolidity function from the module const { generateSolidity } = require('./index.js'); @@ -41,21 +42,28 @@ const solidityCode = generateSolidity(message, false, entryTypes); // Write the Solidity code to a file (for testing purposes) const fs = require('fs'); -fs.writeFileSync('EIP712Decoder.sol', solidityCode); +fs.writeFileSync('contracts/EIP712Decoder.sol', solidityCode); // Run the tests describe('EIP712Decoder', function () { let contract, accounts, signer, typedData; before(async function () { + // Compile the contract using Hardhat + await hre.run('compile'); + // Set up a ganache provider with the generated Solidity code const provider = new ethers.providers.Web3Provider(ganache.provider({})); accounts = await provider.listAccounts(); signer = provider.getSigner(accounts[0]); - // Compile and deploy the contract - const EIP712Decoder = testContract.fromArtifact('EIP712Decoder', './EIP712Decoder.sol'); // <-- Update this line - contract = await deploy(EIP712Decoder, []); + // Load the compiled contract artifact + const EIP712Decoder = await hre.artifacts.readArtifact('EIP712Decoder'); + + // Deploy the contract + const EIP712DecoderFactory = new ethers.ContractFactory(EIP712Decoder.abi, EIP712Decoder.bytecode, signer); + contract = await EIP712DecoderFactory.deploy(); + await contract.deployed(); // Create the typed data for testing typedData = JSON.parse(JSON.stringify(message)); From ff1ee979c1c8b8e67a1e9cf7fc46cf14f77966e5 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 17:04:47 -0700 Subject: [PATCH 11/19] Use eth-sig-util for signature verification --- EIP712Decoder.sol | 136 ++++++++++++++++ .../1c3c8280f8c7e292e7e737090d74a297.json | 1 + .../21fa6fc66024836561f3d36a91b0eddc.json | 1 + .../EIP712Decoder.sol/EIP712Decoder.dbg.json | 4 + .../EIP712Decoder.sol/EIP712Decoder.json | 139 ++++++++++++++++ .../ERC1271Contract.dbg.json | 4 + .../EIP712Decoder.sol/ERC1271Contract.json | 35 ++++ .../MockEIP712Decoder.dbg.json | 4 + .../MockEIP712Decoder.json | 150 ++++++++++++++++++ contracts/EIP712Decoder.sol | 8 +- contracts/MockEIP712Decoder.sol | 21 +++ index.js | 4 +- index.ts | 8 +- package-lock.json | 58 +++++++ package.json | 1 + test.js | 66 ++++++-- 16 files changed, 617 insertions(+), 23 deletions(-) create mode 100644 EIP712Decoder.sol create mode 100644 artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json create mode 100644 artifacts/build-info/21fa6fc66024836561f3d36a91b0eddc.json create mode 100644 artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.dbg.json create mode 100644 artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.json create mode 100644 artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.dbg.json create mode 100644 artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.json create mode 100644 artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json create mode 100644 artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json create mode 100644 contracts/MockEIP712Decoder.sol diff --git a/EIP712Decoder.sol b/EIP712Decoder.sol new file mode 100644 index 0000000..ad5181b --- /dev/null +++ b/EIP712Decoder.sol @@ -0,0 +1,136 @@ +pragma solidity ^0.8.13; +// SPDX-License-Identifier: MIT + + +struct EIP712Domain { + string name; + string version; + uint256 chainId; +} + +bytes32 constant EIP712DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId)"); + + +struct signedPerson { + bytes signature; + address signer; + Person message; +} + + +struct Person { + string name; + uint256 age; +} + +bytes32 constant PERSON_TYPEHASH = keccak256("Person(string name,uint256 age)"); + + +contract ERC1271Contract { + + // bytes4(keccak256("isValidSignature(bytes32,bytes)") + bytes4 constant internal MAGICVALUE = 0x1626ba7e; + + /** + * @dev Should return whether the signature provided is valid for the provided hash + * @param _hash Hash of the data to be signed + * @param _signature Signature byte array associated with _hash + * + * MUST return the bytes4 magic value 0x1626ba7e when function passes. + * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) + * MUST allow external calls + */ + function isValidSignature( + bytes32 _hash, + bytes memory _signature) + public + view + returns (bytes4 magicValue); +} + +contract EIP712Decoder { + + /** + * @dev Recover signer address from a message by using their signature + * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. + * @param sig bytes signature, the signature is generated using web3.eth.sign() + */ + function recover(bytes32 hash, bytes memory sig) internal pure returns (address) { + bytes32 r; + bytes32 s; + uint8 v; + + // Check the signature length + if (sig.length != 65) { + return (address(0)); + } + + // Divide the signature in r, s and v variables + assembly { + r := mload(add(sig, 32)) + s := mload(add(sig, 64)) + v := byte(0, mload(add(sig, 96))) + } + // Version of signature should be 27 or 28, but 0 and 1 are also possible versions + if (v < 27) { + v += 27; + } + + // If the version is correct return the signer address + if (v != 27 && v != 28) { + return (address(0)); + } else { + return ecrecover(hash, v, r, s); + } + } + + function GET_EIP712DOMAIN_PACKETHASH (EIP712Domain memory _input) public pure returns (bytes32) { + + bytes memory encoded = abi.encode( + EIP712DOMAIN_TYPEHASH, + _input.name, + _input.version, + _input.chainId + ); + + return keccak256(encoded); + } + + function GET_PERSON_PACKETHASH (Person memory _input) public pure returns (bytes32) { + + bytes memory encoded = abi.encode( + PERSON_TYPEHASH, + _input.name, + _input.age + ); + + return keccak256(encoded); + } + + function verifySignedPerson(signedPerson memory _input) public view returns (address) { + bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message); + bytes32 digest = keccak256( + abi.encodePacked( + "\x19\x01", + getDomainHash(), + packetHash + ) + ); + + if (_input.signer == 0x0000000000000000000000000000000000000000) { + address recoveredSigner = recover( + digest, + _input.signature + ); + return recoveredSigner; + } else { + // EIP-1271 signature verification + bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature); + require(result == 0x1626ba7e, "INVALID_SIGNATURE"); + return _input.signer; + } + } + + +} + diff --git a/artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json b/artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json new file mode 100644 index 0000000..2b7ba27 --- /dev/null +++ b/artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json @@ -0,0 +1 @@ +{"id":"1c3c8280f8c7e292e7e737090d74a297","_format":"hh-sol-build-info-1","solcVersion":"0.8.13","solcLongVersion":"0.8.13+commit.abaa5c0e","input":{"language":"Solidity","sources":{"contracts/EIP712Decoder.sol":{"content":"pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n\n\nstruct EIP712Domain {\n string name;\n string version;\n uint256 chainId;\n}\n\nbytes32 constant EIP712DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,string version,uint256 chainId)\");\n\n\nstruct signedPerson {\n bytes signature;\n address signer;\n Person message;\n}\n\n\nstruct Person {\n string name;\n uint256 age;\n}\n\nbytes32 constant PERSON_TYPEHASH = keccak256(\"Person(string name,uint256 age)\");\n\n\nabstract contract ERC1271Contract {\n\n // bytes4(keccak256(\"isValidSignature(bytes32,bytes)\")\n bytes4 constant internal MAGICVALUE = 0x1626ba7e;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n virtual\n returns (bytes4 magicValue);\n}\n\nabstract contract EIP712Decoder {\n function getDomainHash () public view virtual returns (bytes32);\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n\n function GET_EIP712DOMAIN_PACKETHASH (EIP712Domain memory _input) public pure returns (bytes32) {\n \n bytes memory encoded = abi.encode(\n EIP712DOMAIN_TYPEHASH,\n _input.name,\n _input.version,\n _input.chainId\n );\n \n return keccak256(encoded);\n }\n\n function GET_PERSON_PACKETHASH (Person memory _input) public pure returns (bytes32) {\n \n bytes memory encoded = abi.encode(\n PERSON_TYPEHASH,\n _input.name,\n _input.age\n );\n \n return keccak256(encoded);\n }\n\n function verifySignedPerson(signedPerson memory _input) public view returns (address) {\n bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainHash(),\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n \n\n}\n\n"},"contracts/MockEIP712Decoder.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.13;\n\nimport \"./EIP712Decoder.sol\";\n\ncontract MockEIP712Decoder is EIP712Decoder {\n bytes32 domainHash;\n constructor(uint256 chainId) {\n domainHash = keccak256(abi.encode(\n EIP712DOMAIN_TYPEHASH,\n keccak256(bytes(\"MockEIP712Decoder\")),\n keccak256(bytes(\"1\")),\n uint256(chainId),\n address(this)\n ));\n }\n\n function getDomainHash () public view override returns (bytes32) {\n return domainHash;\n }\n}\n"}},"settings":{"optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/EIP712Decoder.sol":{"ast":{"absolutePath":"contracts/EIP712Decoder.sol","exportedSymbols":{"EIP712DOMAIN_TYPEHASH":[13],"EIP712Decoder":[233],"EIP712Domain":[8],"ERC1271Contract":[45],"PERSON_TYPEHASH":[31],"Person":[26],"signedPerson":[21]},"id":234,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".13"],"nodeType":"PragmaDirective","src":"0:24:0"},{"canonicalName":"EIP712Domain","id":8,"members":[{"constant":false,"id":3,"mutability":"mutable","name":"name","nameLocation":"90:4:0","nodeType":"VariableDeclaration","scope":8,"src":"83:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2,"name":"string","nodeType":"ElementaryTypeName","src":"83:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"version","nameLocation":"105:7:0","nodeType":"VariableDeclaration","scope":8,"src":"98:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4,"name":"string","nodeType":"ElementaryTypeName","src":"98:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"chainId","nameLocation":"124:7:0","nodeType":"VariableDeclaration","scope":8,"src":"116:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"116:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"EIP712Domain","nameLocation":"66:12:0","nodeType":"StructDefinition","scope":234,"src":"59:75:0","visibility":"public"},{"constant":true,"id":13,"mutability":"constant","name":"EIP712DOMAIN_TYPEHASH","nameLocation":"153:21:0","nodeType":"VariableDeclaration","scope":234,"src":"136:110:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e496429","id":11,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"187:58:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""},"value":"EIP712Domain(string name,string version,uint256 chainId)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""}],"id":10,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"177:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"177:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"canonicalName":"signedPerson","id":21,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"signature","nameLocation":"280:9:0","nodeType":"VariableDeclaration","scope":21,"src":"274:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":14,"name":"bytes","nodeType":"ElementaryTypeName","src":"274:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"signer","nameLocation":"301:6:0","nodeType":"VariableDeclaration","scope":21,"src":"293:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"message","nameLocation":"318:7:0","nodeType":"VariableDeclaration","scope":21,"src":"311:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"},"typeName":{"id":19,"nodeType":"UserDefinedTypeName","pathNode":{"id":18,"name":"Person","nodeType":"IdentifierPath","referencedDeclaration":26,"src":"311:6:0"},"referencedDeclaration":26,"src":"311:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"}},"visibility":"internal"}],"name":"signedPerson","nameLocation":"257:12:0","nodeType":"StructDefinition","scope":234,"src":"250:78:0","visibility":"public"},{"canonicalName":"Person","id":26,"members":[{"constant":false,"id":23,"mutability":"mutable","name":"name","nameLocation":"356:4:0","nodeType":"VariableDeclaration","scope":26,"src":"349:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22,"name":"string","nodeType":"ElementaryTypeName","src":"349:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"age","nameLocation":"372:3:0","nodeType":"VariableDeclaration","scope":26,"src":"364:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Person","nameLocation":"338:6:0","nodeType":"StructDefinition","scope":234,"src":"331:47:0","visibility":"public"},{"constant":true,"id":31,"mutability":"constant","name":"PERSON_TYPEHASH","nameLocation":"397:15:0","nodeType":"VariableDeclaration","scope":234,"src":"380:79:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27,"name":"bytes32","nodeType":"ElementaryTypeName","src":"380:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"506572736f6e28737472696e67206e616d652c75696e743235362061676529","id":29,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"425:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db","typeString":"literal_string \"Person(string name,uint256 age)\""},"value":"Person(string name,uint256 age)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db","typeString":"literal_string \"Person(string name,uint256 age)\""}],"id":28,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"415:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":30,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"415:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1271Contract","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":45,"linearizedBaseContracts":[45],"name":"ERC1271Contract","nameLocation":"481:15:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":34,"mutability":"constant","name":"MAGICVALUE","nameLocation":"584:10:0","nodeType":"VariableDeclaration","scope":45,"src":"559:48:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32,"name":"bytes4","nodeType":"ElementaryTypeName","src":"559:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783136323662613765","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"597:10:0","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"visibility":"internal"},{"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"612:414:0","text":" @dev Should return whether the signature provided is valid for the provided hash\n @param _hash Hash of the data to be signed\n @param _signature Signature byte array associated with _hash\n MUST return the bytes4 magic value 0x1626ba7e when function passes.\n MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n MUST allow external calls"},"functionSelector":"1626ba7e","id":44,"implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"1039:16:0","nodeType":"FunctionDefinition","parameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37,"mutability":"mutable","name":"_hash","nameLocation":"1069:5:0","nodeType":"VariableDeclaration","scope":44,"src":"1061:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1061:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39,"mutability":"mutable","name":"_signature","nameLocation":"1094:10:0","nodeType":"VariableDeclaration","scope":44,"src":"1081:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38,"name":"bytes","nodeType":"ElementaryTypeName","src":"1081:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1055:50:0"},"returnParameters":{"id":43,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42,"mutability":"mutable","name":"magicValue","nameLocation":"1159:10:0","nodeType":"VariableDeclaration","scope":44,"src":"1152:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1152:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1151:19:0"},"scope":45,"src":"1030:141:0","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":234,"src":"463:710:0","usedErrors":[]},{"abstract":true,"baseContracts":[],"canonicalName":"EIP712Decoder","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":233,"linearizedBaseContracts":[233],"name":"EIP712Decoder","nameLocation":"1193:13:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"83ebb771","id":50,"implemented":false,"kind":"function","modifiers":[],"name":"getDomainHash","nameLocation":"1220:13:0","nodeType":"FunctionDefinition","parameters":{"id":46,"nodeType":"ParameterList","parameters":[],"src":"1234:2:0"},"returnParameters":{"id":49,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50,"src":"1266:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1266:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1265:9:0"},"scope":233,"src":"1211:64:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":114,"nodeType":"Block","src":"1630:621:0","statements":[{"assignments":[61],"declarations":[{"constant":false,"id":61,"mutability":"mutable","name":"r","nameLocation":"1644:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1636:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1636:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":62,"nodeType":"VariableDeclarationStatement","src":"1636:9:0"},{"assignments":[64],"declarations":[{"constant":false,"id":64,"mutability":"mutable","name":"s","nameLocation":"1659:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1651:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":63,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1651:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":65,"nodeType":"VariableDeclarationStatement","src":"1651:9:0"},{"assignments":[67],"declarations":[{"constant":false,"id":67,"mutability":"mutable","name":"v","nameLocation":"1672:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1666:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":66,"name":"uint8","nodeType":"ElementaryTypeName","src":"1666:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":68,"nodeType":"VariableDeclarationStatement","src":"1666:7:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":69,"name":"sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55,"src":"1718:3:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1718:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3635","id":71,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1732:2:0","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"1718:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80,"nodeType":"IfStatement","src":"1714:56:0","trueBody":{"id":79,"nodeType":"Block","src":"1736:34:0","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":75,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1760:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1752:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1752:7:0","typeDescriptions":{}}},"id":76,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1752:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":77,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1751:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":78,"nodeType":"Return","src":"1744:19:0"}]}},{"AST":{"nodeType":"YulBlock","src":"1837:109:0","statements":[{"nodeType":"YulAssignment","src":"1845:24:0","value":{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1860:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1865:2:0","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1856:3:0"},"nodeType":"YulFunctionCall","src":"1856:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1850:5:0"},"nodeType":"YulFunctionCall","src":"1850:19:0"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1845:1:0"}]},{"nodeType":"YulAssignment","src":"1876:24:0","value":{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1891:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1896:2:0","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1887:3:0"},"nodeType":"YulFunctionCall","src":"1887:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1881:5:0"},"nodeType":"YulFunctionCall","src":"1881:19:0"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"1876:1:0"}]},{"nodeType":"YulAssignment","src":"1907:33:0","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1917:1:0","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1930:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1935:2:0","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1926:3:0"},"nodeType":"YulFunctionCall","src":"1926:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1920:5:0"},"nodeType":"YulFunctionCall","src":"1920:19:0"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1912:4:0"},"nodeType":"YulFunctionCall","src":"1912:28:0"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"1907:1:0"}]}]},"evmVersion":"london","externalReferences":[{"declaration":61,"isOffset":false,"isSlot":false,"src":"1845:1:0","valueSize":1},{"declaration":64,"isOffset":false,"isSlot":false,"src":"1876:1:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1860:3:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1891:3:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1930:3:0","valueSize":1},{"declaration":67,"isOffset":false,"isSlot":false,"src":"1907:1:0","valueSize":1}],"id":81,"nodeType":"InlineAssembly","src":"1828:118:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":84,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2042:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3237","id":83,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2042:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":90,"nodeType":"IfStatement","src":"2038:34:0","trueBody":{"id":89,"nodeType":"Block","src":"2050:22:0","statements":[{"expression":{"id":87,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2058:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3237","id":86,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2063:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2058:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":88,"nodeType":"ExpressionStatement","src":"2058:7:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":97,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":93,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2141:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3237","id":92,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2146:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2141:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":96,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":94,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2152:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3238","id":95,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"2152:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2141:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":112,"nodeType":"Block","src":"2201:46:0","statements":[{"expression":{"arguments":[{"id":106,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"2226:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":107,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2232:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":108,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"2235:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"2238:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":105,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"2216:9:0","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2216:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":111,"nodeType":"Return","src":"2209:31:0"}]},"id":113,"nodeType":"IfStatement","src":"2137:110:0","trueBody":{"id":104,"nodeType":"Block","src":"2161:34:0","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2185:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":99,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2177:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:0","typeDescriptions":{}}},"id":101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2177:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":102,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2176:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":103,"nodeType":"Return","src":"2169:19:0"}]}}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1279:267:0","text":" @dev Recover signer address from a message by using their signature\n @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n @param sig bytes signature, the signature is generated using web3.eth.sign()"},"id":115,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"1558:7:0","nodeType":"FunctionDefinition","parameters":{"id":56,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53,"mutability":"mutable","name":"hash","nameLocation":"1574:4:0","nodeType":"VariableDeclaration","scope":115,"src":"1566:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1566:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55,"mutability":"mutable","name":"sig","nameLocation":"1593:3:0","nodeType":"VariableDeclaration","scope":115,"src":"1580:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1565:32:0"},"returnParameters":{"id":59,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":115,"src":"1621:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57,"name":"address","nodeType":"ElementaryTypeName","src":"1621:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1620:9:0"},"scope":233,"src":"1549:702:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":140,"nodeType":"Block","src":"2351:183:0","statements":[{"assignments":[124],"declarations":[{"constant":false,"id":124,"mutability":"mutable","name":"encoded","nameLocation":"2375:7:0","nodeType":"VariableDeclaration","scope":140,"src":"2362:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":123,"name":"bytes","nodeType":"ElementaryTypeName","src":"2362:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":135,"initialValue":{"arguments":[{"id":127,"name":"EIP712DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"2403:21:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":128,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2432:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":3,"src":"2432:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":130,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2451:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":5,"src":"2451:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":132,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2473:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":7,"src":"2473:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2385:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2385:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2385:108:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2362:131:0"},{"expression":{"arguments":[{"id":137,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"2521:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":136,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2511:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2511:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":122,"id":139,"nodeType":"Return","src":"2504:25:0"}]},"functionSelector":"4bc39162","id":141,"implemented":true,"kind":"function","modifiers":[],"name":"GET_EIP712DOMAIN_PACKETHASH","nameLocation":"2264:27:0","nodeType":"FunctionDefinition","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"_input","nameLocation":"2313:6:0","nodeType":"VariableDeclaration","scope":141,"src":"2293:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain"},"typeName":{"id":117,"nodeType":"UserDefinedTypeName","pathNode":{"id":116,"name":"EIP712Domain","nodeType":"IdentifierPath","referencedDeclaration":8,"src":"2293:12:0"},"referencedDeclaration":8,"src":"2293:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_storage_ptr","typeString":"struct EIP712Domain"}},"visibility":"internal"}],"src":"2292:28:0"},"returnParameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":141,"src":"2342:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2342:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2341:9:0"},"scope":233,"src":"2255:279:0","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":164,"nodeType":"Block","src":"2622:151:0","statements":[{"assignments":[150],"declarations":[{"constant":false,"id":150,"mutability":"mutable","name":"encoded","nameLocation":"2646:7:0","nodeType":"VariableDeclaration","scope":164,"src":"2633:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":149,"name":"bytes","nodeType":"ElementaryTypeName","src":"2633:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":159,"initialValue":{"arguments":[{"id":153,"name":"PERSON_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"2674:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":154,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2697:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}},"id":155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":23,"src":"2697:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":156,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2716:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}},"id":157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"age","nodeType":"MemberAccess","referencedDeclaration":25,"src":"2716:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2656:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2656:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2656:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2633:99:0"},{"expression":{"arguments":[{"id":161,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"2760:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":160,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2750:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2750:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":148,"id":163,"nodeType":"Return","src":"2743:25:0"}]},"functionSelector":"8f4f876a","id":165,"implemented":true,"kind":"function","modifiers":[],"name":"GET_PERSON_PACKETHASH","nameLocation":"2547:21:0","nodeType":"FunctionDefinition","parameters":{"id":145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":144,"mutability":"mutable","name":"_input","nameLocation":"2584:6:0","nodeType":"VariableDeclaration","scope":165,"src":"2570:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person"},"typeName":{"id":143,"nodeType":"UserDefinedTypeName","pathNode":{"id":142,"name":"Person","nodeType":"IdentifierPath","referencedDeclaration":26,"src":"2570:6:0"},"referencedDeclaration":26,"src":"2570:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"}},"visibility":"internal"}],"src":"2569:22:0"},"returnParameters":{"id":148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":165,"src":"2613:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2613:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2612:9:0"},"scope":233,"src":"2538:235:0","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":231,"nodeType":"Block","src":"2865:682:0","statements":[{"assignments":[174],"declarations":[{"constant":false,"id":174,"mutability":"mutable","name":"packetHash","nameLocation":"2881:10:0","nodeType":"VariableDeclaration","scope":231,"src":"2873:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2873:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":179,"initialValue":{"arguments":[{"expression":{"id":176,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2916:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"message","nodeType":"MemberAccess","referencedDeclaration":20,"src":"2916:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}],"id":175,"name":"GET_PERSON_PACKETHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"2894:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Person_$26_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Person memory) pure returns (bytes32)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2894:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2873:58:0"},{"assignments":[181],"declarations":[{"constant":false,"id":181,"mutability":"mutable","name":"digest","nameLocation":"2947:6:0","nodeType":"VariableDeclaration","scope":231,"src":"2939:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2939:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":191,"initialValue":{"arguments":[{"arguments":[{"hexValue":"1901","id":185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3003:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":186,"name":"getDomainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50,"src":"3025:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3025:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":188,"name":"packetHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"3052:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2975:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2975:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2975:97:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":182,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2956:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2956:124:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2939:141:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":192,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3093:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3093:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030","id":194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000000"},"src":"3093:59:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":229,"nodeType":"Block","src":"3300:241:0","statements":[{"assignments":[208],"declarations":[{"constant":false,"id":208,"mutability":"mutable","name":"result","nameLocation":"3360:6:0","nodeType":"VariableDeclaration","scope":229,"src":"3353:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":207,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3353:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":218,"initialValue":{"arguments":[{"id":214,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"3417:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":215,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3425:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":15,"src":"3425:16:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":210,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3385:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3385:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":209,"name":"ERC1271Contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"3369:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1271Contract_$45_$","typeString":"type(contract ERC1271Contract)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3369:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC1271Contract_$45","typeString":"contract ERC1271Contract"}},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":44,"src":"3369:47:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes32,bytes memory) view external returns (bytes4)"}},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3369:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3353:89:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":220,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3460:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783136323662613765","id":221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3470:10:0","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"src":"3460:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4154555245","id":223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3482:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""},"value":"INVALID_SIGNATURE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""}],"id":219,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3452:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3452:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":225,"nodeType":"ExpressionStatement","src":"3452:50:0"},{"expression":{"expression":{"id":226,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3519:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3519:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":172,"id":228,"nodeType":"Return","src":"3512:20:0"}]},"id":230,"nodeType":"IfStatement","src":"3089:452:0","trueBody":{"id":206,"nodeType":"Block","src":"3154:140:0","statements":[{"assignments":[197],"declarations":[{"constant":false,"id":197,"mutability":"mutable","name":"recoveredSigner","nameLocation":"3172:15:0","nodeType":"VariableDeclaration","scope":206,"src":"3164:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":196,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":203,"initialValue":{"arguments":[{"id":199,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"3209:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":200,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3227:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":15,"src":"3227:16:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":198,"name":"recover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"3190:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3190:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3164:89:0"},{"expression":{"id":204,"name":"recoveredSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"3270:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":172,"id":205,"nodeType":"Return","src":"3263:22:0"}]}}]},"functionSelector":"ea23cf6e","id":232,"implemented":true,"kind":"function","modifiers":[],"name":"verifySignedPerson","nameLocation":"2788:18:0","nodeType":"FunctionDefinition","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":168,"mutability":"mutable","name":"_input","nameLocation":"2827:6:0","nodeType":"VariableDeclaration","scope":232,"src":"2807:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson"},"typeName":{"id":167,"nodeType":"UserDefinedTypeName","pathNode":{"id":166,"name":"signedPerson","nodeType":"IdentifierPath","referencedDeclaration":21,"src":"2807:12:0"},"referencedDeclaration":21,"src":"2807:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_storage_ptr","typeString":"struct signedPerson"}},"visibility":"internal"}],"src":"2806:28:0"},"returnParameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":232,"src":"2856:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"2856:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2855:9:0"},"scope":233,"src":"2779:768:0","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":234,"src":"1175:2378:0","usedErrors":[]}],"src":"0:3555:0"},"id":0},"contracts/MockEIP712Decoder.sol":{"ast":{"absolutePath":"contracts/MockEIP712Decoder.sol","exportedSymbols":{"EIP712DOMAIN_TYPEHASH":[13],"EIP712Decoder":[233],"EIP712Domain":[8],"ERC1271Contract":[45],"MockEIP712Decoder":[285],"PERSON_TYPEHASH":[31],"Person":[26],"signedPerson":[21]},"id":286,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":235,"literals":["solidity","^","0.8",".13"],"nodeType":"PragmaDirective","src":"32:24:1"},{"absolutePath":"contracts/EIP712Decoder.sol","file":"./EIP712Decoder.sol","id":236,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":286,"sourceUnit":234,"src":"58:29:1","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":237,"name":"EIP712Decoder","nodeType":"IdentifierPath","referencedDeclaration":233,"src":"119:13:1"},"id":238,"nodeType":"InheritanceSpecifier","src":"119:13:1"}],"canonicalName":"MockEIP712Decoder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":285,"linearizedBaseContracts":[285,233],"name":"MockEIP712Decoder","nameLocation":"98:17:1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":240,"mutability":"mutable","name":"domainHash","nameLocation":"147:10:1","nodeType":"VariableDeclaration","scope":285,"src":"139:18:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":274,"nodeType":"Block","src":"192:239:1","statements":[{"expression":{"id":272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":245,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"202:10:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":249,"name":"EIP712DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"249:21:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"4d6f636b4549503731324465636f646572","id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300:19:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_a65f75c936afe6c491d5e9cb93ab6ad919c55c9fa1339716b8ab51aa1c9d7fec","typeString":"literal_string \"MockEIP712Decoder\""},"value":"MockEIP712Decoder"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a65f75c936afe6c491d5e9cb93ab6ad919c55c9fa1339716b8ab51aa1c9d7fec","typeString":"literal_string \"MockEIP712Decoder\""}],"id":252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"294:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":251,"name":"bytes","nodeType":"ElementaryTypeName","src":"294:5:1","typeDescriptions":{}}},"id":254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"294:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":250,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"284:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"284:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"31","id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"351:3:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"345:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":257,"name":"bytes","nodeType":"ElementaryTypeName","src":"345:5:1","typeDescriptions":{}}},"id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"345:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":256,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"335:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"335:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":264,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"378:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"370:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":262,"name":"uint256","nodeType":"ElementaryTypeName","src":"370:7:1","typeDescriptions":{}}},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"370:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":268,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"408:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_MockEIP712Decoder_$285","typeString":"contract MockEIP712Decoder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockEIP712Decoder_$285","typeString":"contract MockEIP712Decoder"}],"id":267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"400:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":266,"name":"address","nodeType":"ElementaryTypeName","src":"400:7:1","typeDescriptions":{}}},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"400:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"225:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"225:10:1","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"225:198:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":246,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"215:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"215:209:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"202:222:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":273,"nodeType":"ExpressionStatement","src":"202:222:1"}]},"id":275,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":242,"mutability":"mutable","name":"chainId","nameLocation":"183:7:1","nodeType":"VariableDeclaration","scope":275,"src":"175:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":241,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"174:17:1"},"returnParameters":{"id":244,"nodeType":"ParameterList","parameters":[],"src":"192:0:1"},"scope":285,"src":"163:268:1","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[50],"body":{"id":283,"nodeType":"Block","src":"502:34:1","statements":[{"expression":{"id":281,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"519:10:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":280,"id":282,"nodeType":"Return","src":"512:17:1"}]},"functionSelector":"83ebb771","id":284,"implemented":true,"kind":"function","modifiers":[],"name":"getDomainHash","nameLocation":"446:13:1","nodeType":"FunctionDefinition","overrides":{"id":277,"nodeType":"OverrideSpecifier","overrides":[],"src":"475:8:1"},"parameters":{"id":276,"nodeType":"ParameterList","parameters":[],"src":"460:2:1"},"returnParameters":{"id":280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":284,"src":"493:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"492:9:1"},"scope":285,"src":"437:99:1","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":286,"src":"89:449:1","usedErrors":[]}],"src":"32:507:1"},"id":1}},"contracts":{"contracts/EIP712Decoder.sol":{"EIP712Decoder":{"abi":[{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct EIP712Domain","name":"_input","type":"tuple"}],"name":"GET_EIP712DOMAIN_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"_input","type":"tuple"}],"name":"GET_PERSON_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"message","type":"tuple"}],"internalType":"struct signedPerson","name":"_input","type":"tuple"}],"name":"verifySignedPerson","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"GET_EIP712DOMAIN_PACKETHASH((string,string,uint256))":"4bc39162","GET_PERSON_PACKETHASH((string,uint256))":"8f4f876a","getDomainHash()":"83ebb771","verifySignedPerson((bytes,address,(string,uint256)))":"ea23cf6e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct EIP712Domain\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_EIP712DOMAIN_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_PERSON_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"message\",\"type\":\"tuple\"}],\"internalType\":\"struct signedPerson\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"verifySignedPerson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EIP712Decoder.sol\":\"EIP712Decoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]}},\"version\":1}"},"ERC1271Contract":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided hash\",\"params\":{\"_hash\":\"Hash of the data to be signed\",\"_signature\":\"Signature byte array associated with _hash MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EIP712Decoder.sol\":\"ERC1271Contract\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]}},\"version\":1}"}},"contracts/MockEIP712Decoder.sol":{"MockEIP712Decoder":{"abi":[{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct EIP712Domain","name":"_input","type":"tuple"}],"name":"GET_EIP712DOMAIN_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"_input","type":"tuple"}],"name":"GET_PERSON_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"message","type":"tuple"}],"internalType":"struct signedPerson","name":"_input","type":"tuple"}],"name":"verifySignedPerson","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_275":{"entryPoint":null,"id":275,"parameterSlots":1,"returnSlots":0},"abi_decode_t_uint256_fromMemory":{"entryPoint":310,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":333,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":479,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":393,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":410,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":496,"id":null,"parameterSlots":6,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":459,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":383,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":427,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":274,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":269,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":284,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2407:2","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:2","statements":[{"nodeType":"YulAssignment","src":"57:19:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:2","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:2"},"nodeType":"YulFunctionCall","src":"67:9:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:2"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:2","type":""}],"src":"7:75:2"},{"body":{"nodeType":"YulBlock","src":"177:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:2"},"nodeType":"YulFunctionCall","src":"187:12:2"},"nodeType":"YulExpressionStatement","src":"187:12:2"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:2"},{"body":{"nodeType":"YulBlock","src":"300:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:2"},"nodeType":"YulFunctionCall","src":"310:12:2"},"nodeType":"YulExpressionStatement","src":"310:12:2"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:2"},{"body":{"nodeType":"YulBlock","src":"379:32:2","statements":[{"nodeType":"YulAssignment","src":"389:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"400:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:2"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:2","type":""}],"src":"334:77:2"},{"body":{"nodeType":"YulBlock","src":"460:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"517:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"529:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:2"},"nodeType":"YulFunctionCall","src":"519:12:2"},"nodeType":"YulExpressionStatement","src":"519:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"483:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"508:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"490:17:2"},"nodeType":"YulFunctionCall","src":"490:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"480:2:2"},"nodeType":"YulFunctionCall","src":"480:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"473:6:2"},"nodeType":"YulFunctionCall","src":"473:43:2"},"nodeType":"YulIf","src":"470:63:2"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"453:5:2","type":""}],"src":"417:122:2"},{"body":{"nodeType":"YulBlock","src":"608:80:2","statements":[{"nodeType":"YulAssignment","src":"618:22:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"633:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"627:5:2"},"nodeType":"YulFunctionCall","src":"627:13:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"618:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"676:5:2"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"649:26:2"},"nodeType":"YulFunctionCall","src":"649:33:2"},"nodeType":"YulExpressionStatement","src":"649:33:2"}]},"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"586:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"594:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"602:5:2","type":""}],"src":"545:143:2"},{"body":{"nodeType":"YulBlock","src":"771:274:2","statements":[{"body":{"nodeType":"YulBlock","src":"817:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"819:77:2"},"nodeType":"YulFunctionCall","src":"819:79:2"},"nodeType":"YulExpressionStatement","src":"819:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"792:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"801:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"788:3:2"},"nodeType":"YulFunctionCall","src":"788:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"813:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"784:3:2"},"nodeType":"YulFunctionCall","src":"784:32:2"},"nodeType":"YulIf","src":"781:119:2"},{"nodeType":"YulBlock","src":"910:128:2","statements":[{"nodeType":"YulVariableDeclaration","src":"925:15:2","value":{"kind":"number","nodeType":"YulLiteral","src":"939:1:2","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"929:6:2","type":""}]},{"nodeType":"YulAssignment","src":"954:74:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1000:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"1011:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"996:3:2"},"nodeType":"YulFunctionCall","src":"996:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1020:7:2"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulIdentifier","src":"964:31:2"},"nodeType":"YulFunctionCall","src":"964:64:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"954:6:2"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"741:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"752:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"764:6:2","type":""}],"src":"694:351:2"},{"body":{"nodeType":"YulBlock","src":"1096:32:2","statements":[{"nodeType":"YulAssignment","src":"1106:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"1117:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1106:7:2"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1078:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1088:7:2","type":""}],"src":"1051:77:2"},{"body":{"nodeType":"YulBlock","src":"1199:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1216:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1239:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"1221:17:2"},"nodeType":"YulFunctionCall","src":"1221:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1209:6:2"},"nodeType":"YulFunctionCall","src":"1209:37:2"},"nodeType":"YulExpressionStatement","src":"1209:37:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1187:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1194:3:2","type":""}],"src":"1134:118:2"},{"body":{"nodeType":"YulBlock","src":"1323:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1340:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1363:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1345:17:2"},"nodeType":"YulFunctionCall","src":"1345:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:2"},"nodeType":"YulFunctionCall","src":"1333:37:2"},"nodeType":"YulExpressionStatement","src":"1333:37:2"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1311:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1318:3:2","type":""}],"src":"1258:118:2"},{"body":{"nodeType":"YulBlock","src":"1427:81:2","statements":[{"nodeType":"YulAssignment","src":"1437:65:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1452:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"1459:42:2","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1448:3:2"},"nodeType":"YulFunctionCall","src":"1448:54:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1437:7:2"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1409:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1419:7:2","type":""}],"src":"1382:126:2"},{"body":{"nodeType":"YulBlock","src":"1559:51:2","statements":[{"nodeType":"YulAssignment","src":"1569:35:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1598:5:2"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"1580:17:2"},"nodeType":"YulFunctionCall","src":"1580:24:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1569:7:2"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1541:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1551:7:2","type":""}],"src":"1514:96:2"},{"body":{"nodeType":"YulBlock","src":"1681:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1698:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1721:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1703:17:2"},"nodeType":"YulFunctionCall","src":"1703:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1691:6:2"},"nodeType":"YulFunctionCall","src":"1691:37:2"},"nodeType":"YulExpressionStatement","src":"1691:37:2"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1669:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1676:3:2","type":""}],"src":"1616:118:2"},{"body":{"nodeType":"YulBlock","src":"1950:454:2","statements":[{"nodeType":"YulAssignment","src":"1960:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1972:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"1983:3:2","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1968:3:2"},"nodeType":"YulFunctionCall","src":"1968:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1960:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2054:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2065:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2050:3:2"},"nodeType":"YulFunctionCall","src":"2050:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"1997:43:2"},"nodeType":"YulFunctionCall","src":"1997:71:2"},"nodeType":"YulExpressionStatement","src":"1997:71:2"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2122:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2135:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2146:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2131:3:2"},"nodeType":"YulFunctionCall","src":"2131:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2078:43:2"},"nodeType":"YulFunctionCall","src":"2078:72:2"},"nodeType":"YulExpressionStatement","src":"2078:72:2"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2204:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2217:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2228:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2213:3:2"},"nodeType":"YulFunctionCall","src":"2213:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2160:43:2"},"nodeType":"YulFunctionCall","src":"2160:72:2"},"nodeType":"YulExpressionStatement","src":"2160:72:2"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2286:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2299:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2310:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2295:3:2"},"nodeType":"YulFunctionCall","src":"2295:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2242:43:2"},"nodeType":"YulFunctionCall","src":"2242:72:2"},"nodeType":"YulExpressionStatement","src":"2242:72:2"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2368:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2381:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2392:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2377:3:2"},"nodeType":"YulFunctionCall","src":"2377:19:2"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"2324:43:2"},"nodeType":"YulFunctionCall","src":"2324:73:2"},"nodeType":"YulExpressionStatement","src":"2324:73:2"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1890:9:2","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1902:6:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1910:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1918:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1926:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1934:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1945:4:2","type":""}],"src":"1740:664:2"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_address_to_t_address_fromStack(value4, add(headStart, 128))\n\n }\n\n}\n","id":2,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200105b3803806200105b83398181016040528101906200003791906200014d565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e6040518060400160405280601181526020017f4d6f636b4549503731324465636f646572000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001620000ea959493929190620001f0565b60405160208183030381529060405280519060200120600081905550506200024d565b600080fd5b6000819050919050565b620001278162000112565b81146200013357600080fd5b50565b60008151905062000147816200011c565b92915050565b6000602082840312156200016657620001656200010d565b5b6000620001768482850162000136565b91505092915050565b6000819050919050565b62000194816200017f565b82525050565b620001a58162000112565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001d882620001ab565b9050919050565b620001ea81620001cb565b82525050565b600060a08201905062000207600083018862000189565b62000216602083018762000189565b62000225604083018662000189565b6200023460608301856200019a565b620002436080830184620001df565b9695505050505050565b610dfe806200025d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220ca0a05a510565d9ee49471de5fd24a13ae81e1ff3aee845a020d6cb87285bdc764736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x105B CODESIZE SUB DUP1 PUSH3 0x105B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x14D JUMP JUMPDEST PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B4549503731324465636F646572000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0xEA SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH3 0x24D JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x127 DUP2 PUSH3 0x112 JUMP JUMPDEST DUP2 EQ PUSH3 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x147 DUP2 PUSH3 0x11C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x166 JUMPI PUSH3 0x165 PUSH3 0x10D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x176 DUP5 DUP3 DUP6 ADD PUSH3 0x136 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x194 DUP2 PUSH3 0x17F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x1A5 DUP2 PUSH3 0x112 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D8 DUP3 PUSH3 0x1AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1EA DUP2 PUSH3 0x1CB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH3 0x207 PUSH1 0x0 DUP4 ADD DUP9 PUSH3 0x189 JUMP JUMPDEST PUSH3 0x216 PUSH1 0x20 DUP4 ADD DUP8 PUSH3 0x189 JUMP JUMPDEST PUSH3 0x225 PUSH1 0x40 DUP4 ADD DUP7 PUSH3 0x189 JUMP JUMPDEST PUSH3 0x234 PUSH1 0x60 DUP4 ADD DUP6 PUSH3 0x19A JUMP JUMPDEST PUSH3 0x243 PUSH1 0x80 DUP4 ADD DUP5 PUSH3 0x1DF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDFE DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BC39162 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x83EBB771 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x8F4F876A EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA23CF6E EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x4B1B66E1DAD0EB5853B62DD86EBAC7B66C400129B72DA1FF5FDA43303A4F44DB DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x16F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EC PUSH2 0x166 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FE SWAP3 SWAP2 SWAP1 PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26B JUMPI PUSH1 0x0 PUSH2 0x25E DUP3 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x36B JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP PUSH2 0x366 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E DUP4 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B0 SWAP3 SWAP2 SWAP1 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0xC68 JUMP JUMPDEST SWAP1 POP PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x352 SWAP1 PUSH2 0xCE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x41 DUP6 MLOAD EQ PUSH2 0x386 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH1 0x1B DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x1B DUP2 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0xD3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1B DUP2 PUSH1 0xFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI POP PUSH1 0x1C DUP2 PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x1 DUP7 DUP3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x406 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD83 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x428 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4A0 DUP3 PUSH2 0x457 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4BF JUMPI PUSH2 0x4BE PUSH2 0x468 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D2 PUSH2 0x43E JUMP JUMPDEST SWAP1 POP PUSH2 0x4DE DUP3 DUP3 PUSH2 0x497 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x516 DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x545 PUSH2 0x540 DUP5 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x56C DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x599 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x532 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5D2 DUP2 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5ED PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x5F8 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x618 JUMPI PUSH2 0x617 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x624 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x648 JUMPI PUSH2 0x647 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x654 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x668 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x68A JUMPI PUSH2 0x689 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A7 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x6B4 DUP5 DUP3 DUP6 ADD PUSH2 0x5D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D0 DUP2 PUSH2 0x6BD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x711 PUSH1 0x40 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x731 JUMPI PUSH2 0x730 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x73D DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x751 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x773 JUMPI PUSH2 0x772 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x79D DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x7CA DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EA PUSH2 0x7E5 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x811 DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x82E JUMPI PUSH2 0x82D PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x83E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x872 DUP3 PUSH2 0x847 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x882 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP2 EQ PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x89F DUP2 PUSH2 0x879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x8C5 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8E5 JUMPI PUSH2 0x8E4 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x8F1 DUP5 DUP3 DUP6 ADD PUSH2 0x819 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x905 DUP5 DUP3 DUP6 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x935 DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x957 JUMPI PUSH2 0x956 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x974 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x981 DUP5 DUP3 DUP6 ADD PUSH2 0x8A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x98A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0E DUP3 PUSH2 0x9B4 JUMP JUMPDEST PUSH2 0xA18 DUP2 DUP6 PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH2 0xA28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xA60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA72 DUP2 DUP7 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA86 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xA95 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAB3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAC5 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xAD4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1D PUSH1 0x2 DUP4 PUSH2 0xADC JUMP JUMPDEST SWAP2 POP PUSH2 0xB28 DUP3 PUSH2 0xAE7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB4E PUSH2 0xB49 DUP3 PUSH2 0x6BD JUMP JUMPDEST PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5F DUP3 PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6B DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xB7B DUP3 DUP5 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB8B JUMP JUMPDEST PUSH2 0xBBC DUP2 DUP6 PUSH2 0xB96 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xBD5 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xBF5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC07 DUP2 DUP5 PUSH2 0xBA7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC45 DUP2 PUSH2 0xC10 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC62 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7E JUMPI PUSH2 0xC7D PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8C DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCB PUSH1 0x11 DUP4 PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP PUSH2 0xCD6 DUP3 PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCFA DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD48 DUP3 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0xD01 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xD69 JUMPI PUSH2 0xD68 PUSH2 0xD0E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xD98 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDA5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xD74 JUMP JUMPDEST PUSH2 0xDB2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDBF PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA EXP SDIV 0xA5 LT JUMP 0x5D SWAP15 0xE4 SWAP5 PUSH18 0xDE5FD24A13AE81E1FF3AEE845A020D6CB872 DUP6 0xBD 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"89:449:1:-:0;;;163:268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;177:69:0;294:26:1;;;;;;;;;;;;;;;;;284:37;;;;;;345:10;;;;;;;;;;;;;;;;;335:21;;;;;;378:7;408:4;225:198;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;215:209;;;;;;202:10;:222;;;;163:268;89:449;;88:117:2;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:77::-;1088:7;1117:5;1106:16;;1051:77;;;:::o;1134:118::-;1221:24;1239:5;1221:24;:::i;:::-;1216:3;1209:37;1134:118;;:::o;1258:::-;1345:24;1363:5;1345:24;:::i;:::-;1340:3;1333:37;1258:118;;:::o;1382:126::-;1419:7;1459:42;1452:5;1448:54;1437:65;;1382:126;;;:::o;1514:96::-;1551:7;1580:24;1598:5;1580:24;:::i;:::-;1569:35;;1514:96;;;:::o;1616:118::-;1703:24;1721:5;1703:24;:::i;:::-;1698:3;1691:37;1616:118;;:::o;1740:664::-;1945:4;1983:3;1972:9;1968:19;1960:27;;1997:71;2065:1;2054:9;2050:17;2041:6;1997:71;:::i;:::-;2078:72;2146:2;2135:9;2131:18;2122:6;2078:72;:::i;:::-;2160;2228:2;2217:9;2213:18;2204:6;2160:72;:::i;:::-;2242;2310:2;2299:9;2295:18;2286:6;2242:72;:::i;:::-;2324:73;2392:3;2381:9;2377:19;2368:6;2324:73;:::i;:::-;1740:664;;;;;;;;:::o;89:449:1:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GET_EIP712DOMAIN_PACKETHASH_141":{"entryPoint":255,"id":141,"parameterSlots":1,"returnSlots":1},"@GET_PERSON_PACKETHASH_165":{"entryPoint":367,"id":165,"parameterSlots":1,"returnSlots":1},"@getDomainHash_284":{"entryPoint":358,"id":284,"parameterSlots":0,"returnSlots":1},"@recover_115":{"entryPoint":875,"id":115,"parameterSlots":2,"returnSlots":1},"@verifySignedPerson_232":{"entryPoint":464,"id":232,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":2007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":1330,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2192,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4_fromMemory":{"entryPoint":3155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":1396,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr":{"entryPoint":1496,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Person_$26_memory_ptr":{"entryPoint":1777,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_signedPerson_$21_memory_ptr":{"entryPoint":2213,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":3176,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr":{"entryPoint":1652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Person_$26_memory_ptr":{"entryPoint":1885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr":{"entryPoint":2369,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2442,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":1735,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":2877,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2983,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2563,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2832,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack":{"entryPoint":3262,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2620,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":3444,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":2900,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":1750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3040,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2635,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2718,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":3459,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3297,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1224,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1086,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1958,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":1266,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2955,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2484,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2495,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2780,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint8":{"entryPoint":3389,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2151,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":1725,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3088,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2119,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":1442,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":3329,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory":{"entryPoint":1315,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":2512,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1175,"id":null,"parameterSlots":2,"returnSlots":0},"leftAlign_t_bytes32":{"entryPoint":2867,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3342,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1128,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1256,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":1106,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":1251,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1261,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1101,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1096,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1111,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541":{"entryPoint":2791,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88":{"entryPoint":3221,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2169,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3132,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1452,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:18257:2","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:2","statements":[{"nodeType":"YulAssignment","src":"57:19:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:2","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:2"},"nodeType":"YulFunctionCall","src":"67:9:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:2"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:2","type":""}],"src":"7:75:2"},{"body":{"nodeType":"YulBlock","src":"177:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:2"},"nodeType":"YulFunctionCall","src":"187:12:2"},"nodeType":"YulExpressionStatement","src":"187:12:2"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:2"},{"body":{"nodeType":"YulBlock","src":"300:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:2"},"nodeType":"YulFunctionCall","src":"310:12:2"},"nodeType":"YulExpressionStatement","src":"310:12:2"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:2"},{"body":{"nodeType":"YulBlock","src":"423:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"443:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"433:6:2"},"nodeType":"YulFunctionCall","src":"433:12:2"},"nodeType":"YulExpressionStatement","src":"433:12:2"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulFunctionDefinition","src":"334:117:2"},{"body":{"nodeType":"YulBlock","src":"505:54:2","statements":[{"nodeType":"YulAssignment","src":"515:38:2","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"533:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"540:2:2","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"529:3:2"},"nodeType":"YulFunctionCall","src":"529:14:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"549:2:2","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"545:3:2"},"nodeType":"YulFunctionCall","src":"545:7:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"525:3:2"},"nodeType":"YulFunctionCall","src":"525:28:2"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"515:6:2"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"488:5:2","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"498:6:2","type":""}],"src":"457:102:2"},{"body":{"nodeType":"YulBlock","src":"593:152:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"610:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"613:77:2","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"603:6:2"},"nodeType":"YulFunctionCall","src":"603:88:2"},"nodeType":"YulExpressionStatement","src":"603:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"707:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"710:4:2","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"700:6:2"},"nodeType":"YulFunctionCall","src":"700:15:2"},"nodeType":"YulExpressionStatement","src":"700:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:2"},"nodeType":"YulFunctionCall","src":"724:15:2"},"nodeType":"YulExpressionStatement","src":"724:15:2"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"565:180:2"},{"body":{"nodeType":"YulBlock","src":"794:238:2","statements":[{"nodeType":"YulVariableDeclaration","src":"804:58:2","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"826:6:2"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"856:4:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"834:21:2"},"nodeType":"YulFunctionCall","src":"834:27:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:2"},"nodeType":"YulFunctionCall","src":"822:40:2"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"808:10:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"973:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"975:16:2"},"nodeType":"YulFunctionCall","src":"975:18:2"},"nodeType":"YulExpressionStatement","src":"975:18:2"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"916:10:2"},{"kind":"number","nodeType":"YulLiteral","src":"928:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"913:2:2"},"nodeType":"YulFunctionCall","src":"913:34:2"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"952:10:2"},{"name":"memPtr","nodeType":"YulIdentifier","src":"964:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"949:2:2"},"nodeType":"YulFunctionCall","src":"949:22:2"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"910:2:2"},"nodeType":"YulFunctionCall","src":"910:62:2"},"nodeType":"YulIf","src":"907:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1011:2:2","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1015:10:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1004:6:2"},"nodeType":"YulFunctionCall","src":"1004:22:2"},"nodeType":"YulExpressionStatement","src":"1004:22:2"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"780:6:2","type":""},{"name":"size","nodeType":"YulTypedName","src":"788:4:2","type":""}],"src":"751:281:2"},{"body":{"nodeType":"YulBlock","src":"1079:88:2","statements":[{"nodeType":"YulAssignment","src":"1089:30:2","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1099:18:2"},"nodeType":"YulFunctionCall","src":"1099:20:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1089:6:2"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1148:6:2"},{"name":"size","nodeType":"YulIdentifier","src":"1156:4:2"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1128:19:2"},"nodeType":"YulFunctionCall","src":"1128:33:2"},"nodeType":"YulExpressionStatement","src":"1128:33:2"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1063:4:2","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1072:6:2","type":""}],"src":"1038:129:2"},{"body":{"nodeType":"YulBlock","src":"1262:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1279:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1282:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1272:6:2"},"nodeType":"YulFunctionCall","src":"1272:12:2"},"nodeType":"YulExpressionStatement","src":"1272:12:2"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulFunctionDefinition","src":"1173:117:2"},{"body":{"nodeType":"YulBlock","src":"1385:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1402:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1405:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1395:6:2"},"nodeType":"YulFunctionCall","src":"1395:12:2"},"nodeType":"YulExpressionStatement","src":"1395:12:2"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"1296:117:2"},{"body":{"nodeType":"YulBlock","src":"1508:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1525:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1528:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1518:6:2"},"nodeType":"YulFunctionCall","src":"1518:12:2"},"nodeType":"YulExpressionStatement","src":"1518:12:2"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulFunctionDefinition","src":"1419:117:2"},{"body":{"nodeType":"YulBlock","src":"1609:241:2","statements":[{"body":{"nodeType":"YulBlock","src":"1714:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1716:16:2"},"nodeType":"YulFunctionCall","src":"1716:18:2"},"nodeType":"YulExpressionStatement","src":"1716:18:2"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1686:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"1694:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1683:2:2"},"nodeType":"YulFunctionCall","src":"1683:30:2"},"nodeType":"YulIf","src":"1680:56:2"},{"nodeType":"YulAssignment","src":"1746:37:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1776:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"1754:21:2"},"nodeType":"YulFunctionCall","src":"1754:29:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1746:4:2"}]},{"nodeType":"YulAssignment","src":"1820:23:2","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"1832:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"1838:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1828:3:2"},"nodeType":"YulFunctionCall","src":"1828:15:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1820:4:2"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"1593:6:2","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"1604:4:2","type":""}],"src":"1542:308:2"},{"body":{"nodeType":"YulBlock","src":"1907:103:2","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1930:3:2"},{"name":"src","nodeType":"YulIdentifier","src":"1935:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"1940:6:2"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1917:12:2"},"nodeType":"YulFunctionCall","src":"1917:30:2"},"nodeType":"YulExpressionStatement","src":"1917:30:2"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1988:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"1993:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1984:3:2"},"nodeType":"YulFunctionCall","src":"1984:16:2"},{"kind":"number","nodeType":"YulLiteral","src":"2002:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1977:6:2"},"nodeType":"YulFunctionCall","src":"1977:27:2"},"nodeType":"YulExpressionStatement","src":"1977:27:2"}]},"name":"copy_calldata_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1889:3:2","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1894:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"1899:6:2","type":""}],"src":"1856:154:2"},{"body":{"nodeType":"YulBlock","src":"2100:328:2","statements":[{"nodeType":"YulAssignment","src":"2110:75:2","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2177:6:2"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nodeType":"YulIdentifier","src":"2135:41:2"},"nodeType":"YulFunctionCall","src":"2135:49:2"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2119:15:2"},"nodeType":"YulFunctionCall","src":"2119:66:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2110:5:2"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2201:5:2"},{"name":"length","nodeType":"YulIdentifier","src":"2208:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2194:6:2"},"nodeType":"YulFunctionCall","src":"2194:21:2"},"nodeType":"YulExpressionStatement","src":"2194:21:2"},{"nodeType":"YulVariableDeclaration","src":"2224:27:2","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2239:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"2246:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2235:3:2"},"nodeType":"YulFunctionCall","src":"2235:16:2"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2228:3:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"2289:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"2291:77:2"},"nodeType":"YulFunctionCall","src":"2291:79:2"},"nodeType":"YulExpressionStatement","src":"2291:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2270:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"2275:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2266:3:2"},"nodeType":"YulFunctionCall","src":"2266:16:2"},{"name":"end","nodeType":"YulIdentifier","src":"2284:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2263:2:2"},"nodeType":"YulFunctionCall","src":"2263:25:2"},"nodeType":"YulIf","src":"2260:112:2"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2405:3:2"},{"name":"dst","nodeType":"YulIdentifier","src":"2410:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"2415:6:2"}],"functionName":{"name":"copy_calldata_to_memory","nodeType":"YulIdentifier","src":"2381:23:2"},"nodeType":"YulFunctionCall","src":"2381:41:2"},"nodeType":"YulExpressionStatement","src":"2381:41:2"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2073:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"2078:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"2086:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2094:5:2","type":""}],"src":"2016:412:2"},{"body":{"nodeType":"YulBlock","src":"2510:278:2","statements":[{"body":{"nodeType":"YulBlock","src":"2559:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"2561:77:2"},"nodeType":"YulFunctionCall","src":"2561:79:2"},"nodeType":"YulExpressionStatement","src":"2561:79:2"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2538:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2546:4:2","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2534:3:2"},"nodeType":"YulFunctionCall","src":"2534:17:2"},{"name":"end","nodeType":"YulIdentifier","src":"2553:3:2"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2530:3:2"},"nodeType":"YulFunctionCall","src":"2530:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2523:6:2"},"nodeType":"YulFunctionCall","src":"2523:35:2"},"nodeType":"YulIf","src":"2520:122:2"},{"nodeType":"YulVariableDeclaration","src":"2651:34:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2678:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2665:12:2"},"nodeType":"YulFunctionCall","src":"2665:20:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2655:6:2","type":""}]},{"nodeType":"YulAssignment","src":"2694:88:2","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2755:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2763:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2751:3:2"},"nodeType":"YulFunctionCall","src":"2751:17:2"},{"name":"length","nodeType":"YulIdentifier","src":"2770:6:2"},{"name":"end","nodeType":"YulIdentifier","src":"2778:3:2"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"2703:47:2"},"nodeType":"YulFunctionCall","src":"2703:79:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2694:5:2"}]}]},"name":"abi_decode_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2488:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"2496:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2504:5:2","type":""}],"src":"2448:340:2"},{"body":{"nodeType":"YulBlock","src":"2839:32:2","statements":[{"nodeType":"YulAssignment","src":"2849:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"2860:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2849:7:2"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2821:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2831:7:2","type":""}],"src":"2794:77:2"},{"body":{"nodeType":"YulBlock","src":"2920:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"2977:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2986:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2989:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2979:6:2"},"nodeType":"YulFunctionCall","src":"2979:12:2"},"nodeType":"YulExpressionStatement","src":"2979:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2943:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2968:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"2950:17:2"},"nodeType":"YulFunctionCall","src":"2950:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2940:2:2"},"nodeType":"YulFunctionCall","src":"2940:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2933:6:2"},"nodeType":"YulFunctionCall","src":"2933:43:2"},"nodeType":"YulIf","src":"2930:63:2"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2913:5:2","type":""}],"src":"2877:122:2"},{"body":{"nodeType":"YulBlock","src":"3057:87:2","statements":[{"nodeType":"YulAssignment","src":"3067:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3089:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3076:12:2"},"nodeType":"YulFunctionCall","src":"3076:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3067:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3132:5:2"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"3105:26:2"},"nodeType":"YulFunctionCall","src":"3105:33:2"},"nodeType":"YulExpressionStatement","src":"3105:33:2"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3035:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"3043:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3051:5:2","type":""}],"src":"3005:139:2"},{"body":{"nodeType":"YulBlock","src":"3259:1001:2","statements":[{"body":{"nodeType":"YulBlock","src":"3303:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"3305:77:2"},"nodeType":"YulFunctionCall","src":"3305:79:2"},"nodeType":"YulExpressionStatement","src":"3305:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"3280:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"3285:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3276:3:2"},"nodeType":"YulFunctionCall","src":"3276:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"3297:4:2","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3272:3:2"},"nodeType":"YulFunctionCall","src":"3272:30:2"},"nodeType":"YulIf","src":"3269:117:2"},{"nodeType":"YulAssignment","src":"3395:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3420:4:2","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3404:15:2"},"nodeType":"YulFunctionCall","src":"3404:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3395:5:2"}]},{"nodeType":"YulBlock","src":"3435:320:2","statements":[{"nodeType":"YulVariableDeclaration","src":"3470:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3501:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3512:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3497:3:2"},"nodeType":"YulFunctionCall","src":"3497:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3484:12:2"},"nodeType":"YulFunctionCall","src":"3484:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3474:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3562:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"3564:77:2"},"nodeType":"YulFunctionCall","src":"3564:79:2"},"nodeType":"YulExpressionStatement","src":"3564:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3534:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3542:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3531:2:2"},"nodeType":"YulFunctionCall","src":"3531:30:2"},"nodeType":"YulIf","src":"3528:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3670:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"3677:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3666:3:2"},"nodeType":"YulFunctionCall","src":"3666:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3719:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"3730:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3715:3:2"},"nodeType":"YulFunctionCall","src":"3715:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"3739:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"3684:30:2"},"nodeType":"YulFunctionCall","src":"3684:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3659:6:2"},"nodeType":"YulFunctionCall","src":"3659:85:2"},"nodeType":"YulExpressionStatement","src":"3659:85:2"}]},{"nodeType":"YulBlock","src":"3765:324:2","statements":[{"nodeType":"YulVariableDeclaration","src":"3803:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3834:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3845:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3830:3:2"},"nodeType":"YulFunctionCall","src":"3830:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3817:12:2"},"nodeType":"YulFunctionCall","src":"3817:32:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3807:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3896:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"3898:77:2"},"nodeType":"YulFunctionCall","src":"3898:79:2"},"nodeType":"YulExpressionStatement","src":"3898:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3868:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3876:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3865:2:2"},"nodeType":"YulFunctionCall","src":"3865:30:2"},"nodeType":"YulIf","src":"3862:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4004:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:2"},"nodeType":"YulFunctionCall","src":"4000:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4053:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4064:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4049:3:2"},"nodeType":"YulFunctionCall","src":"4049:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"4073:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"4018:30:2"},"nodeType":"YulFunctionCall","src":"4018:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3993:6:2"},"nodeType":"YulFunctionCall","src":"3993:85:2"},"nodeType":"YulExpressionStatement","src":"3993:85:2"}]},{"nodeType":"YulBlock","src":"4099:154:2","statements":[{"nodeType":"YulVariableDeclaration","src":"4137:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"4151:2:2","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4141:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4178:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"4185:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4174:3:2"},"nodeType":"YulFunctionCall","src":"4174:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4228:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4213:3:2"},"nodeType":"YulFunctionCall","src":"4213:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"4237:3:2"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"4192:20:2"},"nodeType":"YulFunctionCall","src":"4192:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4167:6:2"},"nodeType":"YulFunctionCall","src":"4167:75:2"},"nodeType":"YulExpressionStatement","src":"4167:75:2"}]}]},"name":"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3234:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"3245:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3253:5:2","type":""}],"src":"3177:1083:2"},{"body":{"nodeType":"YulBlock","src":"4359:450:2","statements":[{"body":{"nodeType":"YulBlock","src":"4405:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4407:77:2"},"nodeType":"YulFunctionCall","src":"4407:79:2"},"nodeType":"YulExpressionStatement","src":"4407:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4380:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"4389:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4376:3:2"},"nodeType":"YulFunctionCall","src":"4376:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"4401:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4372:3:2"},"nodeType":"YulFunctionCall","src":"4372:32:2"},"nodeType":"YulIf","src":"4369:119:2"},{"nodeType":"YulBlock","src":"4498:304:2","statements":[{"nodeType":"YulVariableDeclaration","src":"4513:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4544:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4555:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4540:3:2"},"nodeType":"YulFunctionCall","src":"4540:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4527:12:2"},"nodeType":"YulFunctionCall","src":"4527:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4517:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"4605:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"4607:77:2"},"nodeType":"YulFunctionCall","src":"4607:79:2"},"nodeType":"YulExpressionStatement","src":"4607:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4577:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"4585:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4574:2:2"},"nodeType":"YulFunctionCall","src":"4574:30:2"},"nodeType":"YulIf","src":"4571:117:2"},{"nodeType":"YulAssignment","src":"4702:90:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4764:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4775:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4760:3:2"},"nodeType":"YulFunctionCall","src":"4760:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4784:7:2"}],"functionName":{"name":"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulIdentifier","src":"4712:47:2"},"nodeType":"YulFunctionCall","src":"4712:80:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4702:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4329:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4340:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4352:6:2","type":""}],"src":"4266:543:2"},{"body":{"nodeType":"YulBlock","src":"4860:32:2","statements":[{"nodeType":"YulAssignment","src":"4870:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"4881:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4870:7:2"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4842:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4852:7:2","type":""}],"src":"4815:77:2"},{"body":{"nodeType":"YulBlock","src":"4963:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4980:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5003:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"4985:17:2"},"nodeType":"YulFunctionCall","src":"4985:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4973:6:2"},"nodeType":"YulFunctionCall","src":"4973:37:2"},"nodeType":"YulExpressionStatement","src":"4973:37:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4951:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4958:3:2","type":""}],"src":"4898:118:2"},{"body":{"nodeType":"YulBlock","src":"5120:124:2","statements":[{"nodeType":"YulAssignment","src":"5130:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5142:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5153:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5138:3:2"},"nodeType":"YulFunctionCall","src":"5138:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5130:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5210:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5234:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:2"},"nodeType":"YulFunctionCall","src":"5219:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"5166:43:2"},"nodeType":"YulFunctionCall","src":"5166:71:2"},"nodeType":"YulExpressionStatement","src":"5166:71:2"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5092:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5104:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5115:4:2","type":""}],"src":"5022:222:2"},{"body":{"nodeType":"YulBlock","src":"5348:663:2","statements":[{"body":{"nodeType":"YulBlock","src":"5392:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"5394:77:2"},"nodeType":"YulFunctionCall","src":"5394:79:2"},"nodeType":"YulExpressionStatement","src":"5394:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5369:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"5374:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5365:3:2"},"nodeType":"YulFunctionCall","src":"5365:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"5386:4:2","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5361:3:2"},"nodeType":"YulFunctionCall","src":"5361:30:2"},"nodeType":"YulIf","src":"5358:117:2"},{"nodeType":"YulAssignment","src":"5484:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5509:4:2","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5493:15:2"},"nodeType":"YulFunctionCall","src":"5493:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5484:5:2"}]},{"nodeType":"YulBlock","src":"5524:320:2","statements":[{"nodeType":"YulVariableDeclaration","src":"5559:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5590:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5601:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5586:3:2"},"nodeType":"YulFunctionCall","src":"5586:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5573:12:2"},"nodeType":"YulFunctionCall","src":"5573:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5563:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"5651:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"5653:77:2"},"nodeType":"YulFunctionCall","src":"5653:79:2"},"nodeType":"YulExpressionStatement","src":"5653:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5623:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"5631:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5620:2:2"},"nodeType":"YulFunctionCall","src":"5620:30:2"},"nodeType":"YulIf","src":"5617:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5759:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"5766:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5755:3:2"},"nodeType":"YulFunctionCall","src":"5755:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5808:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"5819:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5804:3:2"},"nodeType":"YulFunctionCall","src":"5804:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"5828:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"5773:30:2"},"nodeType":"YulFunctionCall","src":"5773:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5748:6:2"},"nodeType":"YulFunctionCall","src":"5748:85:2"},"nodeType":"YulExpressionStatement","src":"5748:85:2"}]},{"nodeType":"YulBlock","src":"5854:150:2","statements":[{"nodeType":"YulVariableDeclaration","src":"5888:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"5902:2:2","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5892:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5929:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"5936:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5925:3:2"},"nodeType":"YulFunctionCall","src":"5925:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5968:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"5979:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5964:3:2"},"nodeType":"YulFunctionCall","src":"5964:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"5988:3:2"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"5943:20:2"},"nodeType":"YulFunctionCall","src":"5943:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5918:6:2"},"nodeType":"YulFunctionCall","src":"5918:75:2"},"nodeType":"YulExpressionStatement","src":"5918:75:2"}]}]},"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5323:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"5334:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5342:5:2","type":""}],"src":"5271:740:2"},{"body":{"nodeType":"YulBlock","src":"6105:445:2","statements":[{"body":{"nodeType":"YulBlock","src":"6151:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"6153:77:2"},"nodeType":"YulFunctionCall","src":"6153:79:2"},"nodeType":"YulExpressionStatement","src":"6153:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6126:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"6135:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6122:3:2"},"nodeType":"YulFunctionCall","src":"6122:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"6147:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6118:3:2"},"nodeType":"YulFunctionCall","src":"6118:32:2"},"nodeType":"YulIf","src":"6115:119:2"},{"nodeType":"YulBlock","src":"6244:299:2","statements":[{"nodeType":"YulVariableDeclaration","src":"6259:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6290:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"6301:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6286:3:2"},"nodeType":"YulFunctionCall","src":"6286:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6273:12:2"},"nodeType":"YulFunctionCall","src":"6273:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6263:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"6351:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"6353:77:2"},"nodeType":"YulFunctionCall","src":"6353:79:2"},"nodeType":"YulExpressionStatement","src":"6353:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6323:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6331:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6320:2:2"},"nodeType":"YulFunctionCall","src":"6320:30:2"},"nodeType":"YulIf","src":"6317:117:2"},{"nodeType":"YulAssignment","src":"6448:85:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6505:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"6516:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6501:3:2"},"nodeType":"YulFunctionCall","src":"6501:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6525:7:2"}],"functionName":{"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulIdentifier","src":"6458:42:2"},"nodeType":"YulFunctionCall","src":"6458:75:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6448:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_Person_$26_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6075:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6086:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6098:6:2","type":""}],"src":"6017:533:2"},{"body":{"nodeType":"YulBlock","src":"6622:241:2","statements":[{"body":{"nodeType":"YulBlock","src":"6727:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"6729:16:2"},"nodeType":"YulFunctionCall","src":"6729:18:2"},"nodeType":"YulExpressionStatement","src":"6729:18:2"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6699:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6707:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6696:2:2"},"nodeType":"YulFunctionCall","src":"6696:30:2"},"nodeType":"YulIf","src":"6693:56:2"},{"nodeType":"YulAssignment","src":"6759:37:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6789:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"6767:21:2"},"nodeType":"YulFunctionCall","src":"6767:29:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6759:4:2"}]},{"nodeType":"YulAssignment","src":"6833:23:2","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"6845:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"6851:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6841:3:2"},"nodeType":"YulFunctionCall","src":"6841:15:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6833:4:2"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"6606:6:2","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"6617:4:2","type":""}],"src":"6556:307:2"},{"body":{"nodeType":"YulBlock","src":"6952:327:2","statements":[{"nodeType":"YulAssignment","src":"6962:74:2","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7028:6:2"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"6987:40:2"},"nodeType":"YulFunctionCall","src":"6987:48:2"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6971:15:2"},"nodeType":"YulFunctionCall","src":"6971:65:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"6962:5:2"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7052:5:2"},{"name":"length","nodeType":"YulIdentifier","src":"7059:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7045:6:2"},"nodeType":"YulFunctionCall","src":"7045:21:2"},"nodeType":"YulExpressionStatement","src":"7045:21:2"},{"nodeType":"YulVariableDeclaration","src":"7075:27:2","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7090:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"7097:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7086:3:2"},"nodeType":"YulFunctionCall","src":"7086:16:2"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"7079:3:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"7140:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"7142:77:2"},"nodeType":"YulFunctionCall","src":"7142:79:2"},"nodeType":"YulExpressionStatement","src":"7142:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7121:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7126:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7117:3:2"},"nodeType":"YulFunctionCall","src":"7117:16:2"},{"name":"end","nodeType":"YulIdentifier","src":"7135:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7114:2:2"},"nodeType":"YulFunctionCall","src":"7114:25:2"},"nodeType":"YulIf","src":"7111:112:2"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7256:3:2"},{"name":"dst","nodeType":"YulIdentifier","src":"7261:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7266:6:2"}],"functionName":{"name":"copy_calldata_to_memory","nodeType":"YulIdentifier","src":"7232:23:2"},"nodeType":"YulFunctionCall","src":"7232:41:2"},"nodeType":"YulExpressionStatement","src":"7232:41:2"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"6925:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"6930:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"6938:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"6946:5:2","type":""}],"src":"6869:410:2"},{"body":{"nodeType":"YulBlock","src":"7359:277:2","statements":[{"body":{"nodeType":"YulBlock","src":"7408:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"7410:77:2"},"nodeType":"YulFunctionCall","src":"7410:79:2"},"nodeType":"YulExpressionStatement","src":"7410:79:2"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7387:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"7395:4:2","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7383:3:2"},"nodeType":"YulFunctionCall","src":"7383:17:2"},{"name":"end","nodeType":"YulIdentifier","src":"7402:3:2"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7379:3:2"},"nodeType":"YulFunctionCall","src":"7379:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7372:6:2"},"nodeType":"YulFunctionCall","src":"7372:35:2"},"nodeType":"YulIf","src":"7369:122:2"},{"nodeType":"YulVariableDeclaration","src":"7500:34:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7527:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7514:12:2"},"nodeType":"YulFunctionCall","src":"7514:20:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7504:6:2","type":""}]},{"nodeType":"YulAssignment","src":"7543:87:2","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7603:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"7611:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7599:3:2"},"nodeType":"YulFunctionCall","src":"7599:17:2"},{"name":"length","nodeType":"YulIdentifier","src":"7618:6:2"},{"name":"end","nodeType":"YulIdentifier","src":"7626:3:2"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"7552:46:2"},"nodeType":"YulFunctionCall","src":"7552:78:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"7543:5:2"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7337:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"7345:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7353:5:2","type":""}],"src":"7298:338:2"},{"body":{"nodeType":"YulBlock","src":"7687:81:2","statements":[{"nodeType":"YulAssignment","src":"7697:65:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7712:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"7719:42:2","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7708:3:2"},"nodeType":"YulFunctionCall","src":"7708:54:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"7697:7:2"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7669:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"7679:7:2","type":""}],"src":"7642:126:2"},{"body":{"nodeType":"YulBlock","src":"7819:51:2","statements":[{"nodeType":"YulAssignment","src":"7829:35:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7858:5:2"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"7840:17:2"},"nodeType":"YulFunctionCall","src":"7840:24:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"7829:7:2"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7801:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"7811:7:2","type":""}],"src":"7774:96:2"},{"body":{"nodeType":"YulBlock","src":"7919:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"7976:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7985:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7988:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7978:6:2"},"nodeType":"YulFunctionCall","src":"7978:12:2"},"nodeType":"YulExpressionStatement","src":"7978:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7942:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7967:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"7949:17:2"},"nodeType":"YulFunctionCall","src":"7949:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7939:2:2"},"nodeType":"YulFunctionCall","src":"7939:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7932:6:2"},"nodeType":"YulFunctionCall","src":"7932:43:2"},"nodeType":"YulIf","src":"7929:63:2"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7912:5:2","type":""}],"src":"7876:122:2"},{"body":{"nodeType":"YulBlock","src":"8056:87:2","statements":[{"nodeType":"YulAssignment","src":"8066:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8088:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8075:12:2"},"nodeType":"YulFunctionCall","src":"8075:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8066:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8131:5:2"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"8104:26:2"},"nodeType":"YulFunctionCall","src":"8104:33:2"},"nodeType":"YulExpressionStatement","src":"8104:33:2"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"8034:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"8042:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8050:5:2","type":""}],"src":"8004:139:2"},{"body":{"nodeType":"YulBlock","src":"8259:1016:2","statements":[{"body":{"nodeType":"YulBlock","src":"8303:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"8305:77:2"},"nodeType":"YulFunctionCall","src":"8305:79:2"},"nodeType":"YulExpressionStatement","src":"8305:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"8280:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"8285:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8276:3:2"},"nodeType":"YulFunctionCall","src":"8276:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"8297:4:2","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8272:3:2"},"nodeType":"YulFunctionCall","src":"8272:30:2"},"nodeType":"YulIf","src":"8269:117:2"},{"nodeType":"YulAssignment","src":"8395:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8420:4:2","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8404:15:2"},"nodeType":"YulFunctionCall","src":"8404:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8395:5:2"}]},{"nodeType":"YulBlock","src":"8435:324:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8475:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8506:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"8517:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8502:3:2"},"nodeType":"YulFunctionCall","src":"8502:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8489:12:2"},"nodeType":"YulFunctionCall","src":"8489:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8479:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"8567:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"8569:77:2"},"nodeType":"YulFunctionCall","src":"8569:79:2"},"nodeType":"YulExpressionStatement","src":"8569:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8539:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"8547:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8536:2:2"},"nodeType":"YulFunctionCall","src":"8536:30:2"},"nodeType":"YulIf","src":"8533:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8675:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"8682:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8671:3:2"},"nodeType":"YulFunctionCall","src":"8671:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8723:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"8734:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8719:3:2"},"nodeType":"YulFunctionCall","src":"8719:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"8743:3:2"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"8689:29:2"},"nodeType":"YulFunctionCall","src":"8689:58:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8664:6:2"},"nodeType":"YulFunctionCall","src":"8664:84:2"},"nodeType":"YulExpressionStatement","src":"8664:84:2"}]},{"nodeType":"YulBlock","src":"8769:153:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8806:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"8820:2:2","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8810:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8847:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"8854:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8843:3:2"},"nodeType":"YulFunctionCall","src":"8843:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8886:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"8897:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8882:3:2"},"nodeType":"YulFunctionCall","src":"8882:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"8906:3:2"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8861:20:2"},"nodeType":"YulFunctionCall","src":"8861:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8836:6:2"},"nodeType":"YulFunctionCall","src":"8836:75:2"},"nodeType":"YulExpressionStatement","src":"8836:75:2"}]},{"nodeType":"YulBlock","src":"8932:336:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8970:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9001:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"9012:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8997:3:2"},"nodeType":"YulFunctionCall","src":"8997:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8984:12:2"},"nodeType":"YulFunctionCall","src":"8984:32:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8974:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"9063:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"9065:77:2"},"nodeType":"YulFunctionCall","src":"9065:79:2"},"nodeType":"YulExpressionStatement","src":"9065:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9035:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"9043:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9032:2:2"},"nodeType":"YulFunctionCall","src":"9032:30:2"},"nodeType":"YulIf","src":"9029:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9171:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"9178:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9167:3:2"},"nodeType":"YulFunctionCall","src":"9167:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9232:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"9243:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9228:3:2"},"nodeType":"YulFunctionCall","src":"9228:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"9252:3:2"}],"functionName":{"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulIdentifier","src":"9185:42:2"},"nodeType":"YulFunctionCall","src":"9185:71:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9160:6:2"},"nodeType":"YulFunctionCall","src":"9160:97:2"},"nodeType":"YulExpressionStatement","src":"9160:97:2"}]}]},"name":"abi_decode_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8234:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"8245:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8253:5:2","type":""}],"src":"8176:1099:2"},{"body":{"nodeType":"YulBlock","src":"9375:451:2","statements":[{"body":{"nodeType":"YulBlock","src":"9421:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"9423:77:2"},"nodeType":"YulFunctionCall","src":"9423:79:2"},"nodeType":"YulExpressionStatement","src":"9423:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9396:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"9405:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9392:3:2"},"nodeType":"YulFunctionCall","src":"9392:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"9417:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9388:3:2"},"nodeType":"YulFunctionCall","src":"9388:32:2"},"nodeType":"YulIf","src":"9385:119:2"},{"nodeType":"YulBlock","src":"9514:305:2","statements":[{"nodeType":"YulVariableDeclaration","src":"9529:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9560:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"9571:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9556:3:2"},"nodeType":"YulFunctionCall","src":"9556:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9543:12:2"},"nodeType":"YulFunctionCall","src":"9543:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9533:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"9621:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"9623:77:2"},"nodeType":"YulFunctionCall","src":"9623:79:2"},"nodeType":"YulExpressionStatement","src":"9623:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9593:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"9601:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9590:2:2"},"nodeType":"YulFunctionCall","src":"9590:30:2"},"nodeType":"YulIf","src":"9587:117:2"},{"nodeType":"YulAssignment","src":"9718:91:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9781:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"9792:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9777:3:2"},"nodeType":"YulFunctionCall","src":"9777:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9801:7:2"}],"functionName":{"name":"abi_decode_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulIdentifier","src":"9728:48:2"},"nodeType":"YulFunctionCall","src":"9728:81:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9718:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9345:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9356:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9368:6:2","type":""}],"src":"9281:545:2"},{"body":{"nodeType":"YulBlock","src":"9897:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9914:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9937:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"9919:17:2"},"nodeType":"YulFunctionCall","src":"9919:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9907:6:2"},"nodeType":"YulFunctionCall","src":"9907:37:2"},"nodeType":"YulExpressionStatement","src":"9907:37:2"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9885:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9892:3:2","type":""}],"src":"9832:118:2"},{"body":{"nodeType":"YulBlock","src":"10054:124:2","statements":[{"nodeType":"YulAssignment","src":"10064:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10076:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10072:3:2"},"nodeType":"YulFunctionCall","src":"10072:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10064:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10144:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10157:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"10168:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10153:3:2"},"nodeType":"YulFunctionCall","src":"10153:17:2"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"10100:43:2"},"nodeType":"YulFunctionCall","src":"10100:71:2"},"nodeType":"YulExpressionStatement","src":"10100:71:2"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10026:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10038:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10049:4:2","type":""}],"src":"9956:222:2"},{"body":{"nodeType":"YulBlock","src":"10243:40:2","statements":[{"nodeType":"YulAssignment","src":"10254:22:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10270:5:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10264:5:2"},"nodeType":"YulFunctionCall","src":"10264:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10254:6:2"}]}]},"name":"array_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10226:5:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10236:6:2","type":""}],"src":"10184:99:2"},{"body":{"nodeType":"YulBlock","src":"10385:73:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10402:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"10407:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10395:6:2"},"nodeType":"YulFunctionCall","src":"10395:19:2"},"nodeType":"YulExpressionStatement","src":"10395:19:2"},{"nodeType":"YulAssignment","src":"10423:29:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10442:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"10447:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10438:3:2"},"nodeType":"YulFunctionCall","src":"10438:14:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"10423:11:2"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10357:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"10362:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"10373:11:2","type":""}],"src":"10289:169:2"},{"body":{"nodeType":"YulBlock","src":"10513:258:2","statements":[{"nodeType":"YulVariableDeclaration","src":"10523:10:2","value":{"kind":"number","nodeType":"YulLiteral","src":"10532:1:2","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10527:1:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"10592:63:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10617:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"10622:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10613:3:2"},"nodeType":"YulFunctionCall","src":"10613:11:2"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10636:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"10641:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10632:3:2"},"nodeType":"YulFunctionCall","src":"10632:11:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10626:5:2"},"nodeType":"YulFunctionCall","src":"10626:18:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10606:6:2"},"nodeType":"YulFunctionCall","src":"10606:39:2"},"nodeType":"YulExpressionStatement","src":"10606:39:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10553:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"10556:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10550:2:2"},"nodeType":"YulFunctionCall","src":"10550:13:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10564:19:2","statements":[{"nodeType":"YulAssignment","src":"10566:15:2","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10575:1:2"},{"kind":"number","nodeType":"YulLiteral","src":"10578:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10571:3:2"},"nodeType":"YulFunctionCall","src":"10571:10:2"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10566:1:2"}]}]},"pre":{"nodeType":"YulBlock","src":"10546:3:2","statements":[]},"src":"10542:113:2"},{"body":{"nodeType":"YulBlock","src":"10689:76:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10739:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"10744:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10735:3:2"},"nodeType":"YulFunctionCall","src":"10735:16:2"},{"kind":"number","nodeType":"YulLiteral","src":"10753:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10728:6:2"},"nodeType":"YulFunctionCall","src":"10728:27:2"},"nodeType":"YulExpressionStatement","src":"10728:27:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10670:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"10673:6:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10667:2:2"},"nodeType":"YulFunctionCall","src":"10667:13:2"},"nodeType":"YulIf","src":"10664:101:2"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"10495:3:2","type":""},{"name":"dst","nodeType":"YulTypedName","src":"10500:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"10505:6:2","type":""}],"src":"10464:307:2"},{"body":{"nodeType":"YulBlock","src":"10869:272:2","statements":[{"nodeType":"YulVariableDeclaration","src":"10879:53:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10926:5:2"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"10893:32:2"},"nodeType":"YulFunctionCall","src":"10893:39:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10883:6:2","type":""}]},{"nodeType":"YulAssignment","src":"10941:78:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11007:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"11012:6:2"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10948:58:2"},"nodeType":"YulFunctionCall","src":"10948:71:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10941:3:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11054:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"11061:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11050:3:2"},"nodeType":"YulFunctionCall","src":"11050:16:2"},{"name":"pos","nodeType":"YulIdentifier","src":"11068:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"11073:6:2"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11028:21:2"},"nodeType":"YulFunctionCall","src":"11028:52:2"},"nodeType":"YulExpressionStatement","src":"11028:52:2"},{"nodeType":"YulAssignment","src":"11089:46:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11100:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11127:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"11105:21:2"},"nodeType":"YulFunctionCall","src":"11105:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11096:3:2"},"nodeType":"YulFunctionCall","src":"11096:39:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11089:3:2"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10850:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10857:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10865:3:2","type":""}],"src":"10777:364:2"},{"body":{"nodeType":"YulBlock","src":"11212:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11229:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11252:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"11234:17:2"},"nodeType":"YulFunctionCall","src":"11234:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11222:6:2"},"nodeType":"YulFunctionCall","src":"11222:37:2"},"nodeType":"YulExpressionStatement","src":"11222:37:2"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11200:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11207:3:2","type":""}],"src":"11147:118:2"},{"body":{"nodeType":"YulBlock","src":"11493:513:2","statements":[{"nodeType":"YulAssignment","src":"11503:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11515:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11526:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11511:3:2"},"nodeType":"YulFunctionCall","src":"11511:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11503:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11584:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11597:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11608:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11593:3:2"},"nodeType":"YulFunctionCall","src":"11593:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"11540:43:2"},"nodeType":"YulFunctionCall","src":"11540:71:2"},"nodeType":"YulExpressionStatement","src":"11540:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11632:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11643:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11628:3:2"},"nodeType":"YulFunctionCall","src":"11628:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11652:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"11658:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11648:3:2"},"nodeType":"YulFunctionCall","src":"11648:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11621:6:2"},"nodeType":"YulFunctionCall","src":"11621:48:2"},"nodeType":"YulExpressionStatement","src":"11621:48:2"},{"nodeType":"YulAssignment","src":"11678:86:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11750:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"11759:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11686:63:2"},"nodeType":"YulFunctionCall","src":"11686:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11678:4:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11785:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11796:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11781:3:2"},"nodeType":"YulFunctionCall","src":"11781:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11805:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"11811:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11801:3:2"},"nodeType":"YulFunctionCall","src":"11801:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11774:6:2"},"nodeType":"YulFunctionCall","src":"11774:48:2"},"nodeType":"YulExpressionStatement","src":"11774:48:2"},{"nodeType":"YulAssignment","src":"11831:86:2","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11903:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"11912:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11839:63:2"},"nodeType":"YulFunctionCall","src":"11839:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11831:4:2"}]},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11971:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11984:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11995:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11980:3:2"},"nodeType":"YulFunctionCall","src":"11980:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"11927:43:2"},"nodeType":"YulFunctionCall","src":"11927:72:2"},"nodeType":"YulExpressionStatement","src":"11927:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11441:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11453:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11461:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11469:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11477:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11488:4:2","type":""}],"src":"11271:735:2"},{"body":{"nodeType":"YulBlock","src":"12186:359:2","statements":[{"nodeType":"YulAssignment","src":"12196:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12208:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12219:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12204:3:2"},"nodeType":"YulFunctionCall","src":"12204:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12196:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12276:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12289:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12300:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12285:3:2"},"nodeType":"YulFunctionCall","src":"12285:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"12232:43:2"},"nodeType":"YulFunctionCall","src":"12232:71:2"},"nodeType":"YulExpressionStatement","src":"12232:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12324:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12335:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12320:3:2"},"nodeType":"YulFunctionCall","src":"12320:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12344:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"12350:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12340:3:2"},"nodeType":"YulFunctionCall","src":"12340:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12313:6:2"},"nodeType":"YulFunctionCall","src":"12313:48:2"},"nodeType":"YulExpressionStatement","src":"12313:48:2"},{"nodeType":"YulAssignment","src":"12370:86:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12442:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"12451:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"12378:63:2"},"nodeType":"YulFunctionCall","src":"12378:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12370:4:2"}]},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12510:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12523:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12534:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12519:3:2"},"nodeType":"YulFunctionCall","src":"12519:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"12466:43:2"},"nodeType":"YulFunctionCall","src":"12466:72:2"},"nodeType":"YulExpressionStatement","src":"12466:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12142:9:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12154:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12162:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12170:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12181:4:2","type":""}],"src":"12012:533:2"},{"body":{"nodeType":"YulBlock","src":"12665:34:2","statements":[{"nodeType":"YulAssignment","src":"12675:18:2","value":{"name":"pos","nodeType":"YulIdentifier","src":"12690:3:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"12675:11:2"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12637:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"12642:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"12653:11:2","type":""}],"src":"12551:148:2"},{"body":{"nodeType":"YulBlock","src":"12811:108:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12833:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"12841:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12829:3:2"},"nodeType":"YulFunctionCall","src":"12829:14:2"},{"kind":"number","nodeType":"YulLiteral","src":"12845:66:2","type":"","value":"0x1901000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12822:6:2"},"nodeType":"YulFunctionCall","src":"12822:90:2"},"nodeType":"YulExpressionStatement","src":"12822:90:2"}]},"name":"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"12803:6:2","type":""}],"src":"12705:214:2"},{"body":{"nodeType":"YulBlock","src":"13089:236:2","statements":[{"nodeType":"YulAssignment","src":"13099:91:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13183:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"13188:1:2","type":"","value":"2"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"13106:76:2"},"nodeType":"YulFunctionCall","src":"13106:84:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13099:3:2"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13288:3:2"}],"functionName":{"name":"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","nodeType":"YulIdentifier","src":"13199:88:2"},"nodeType":"YulFunctionCall","src":"13199:93:2"},"nodeType":"YulExpressionStatement","src":"13199:93:2"},{"nodeType":"YulAssignment","src":"13301:18:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13312:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"13317:1:2","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13308:3:2"},"nodeType":"YulFunctionCall","src":"13308:11:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13301:3:2"}]}]},"name":"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13077:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13085:3:2","type":""}],"src":"12925:400:2"},{"body":{"nodeType":"YulBlock","src":"13378:32:2","statements":[{"nodeType":"YulAssignment","src":"13388:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"13399:5:2"},"variableNames":[{"name":"aligned","nodeType":"YulIdentifier","src":"13388:7:2"}]}]},"name":"leftAlign_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13360:5:2","type":""}],"returnVariables":[{"name":"aligned","nodeType":"YulTypedName","src":"13370:7:2","type":""}],"src":"13331:79:2"},{"body":{"nodeType":"YulBlock","src":"13499:74:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13516:3:2"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13559:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"13541:17:2"},"nodeType":"YulFunctionCall","src":"13541:24:2"}],"functionName":{"name":"leftAlign_t_bytes32","nodeType":"YulIdentifier","src":"13521:19:2"},"nodeType":"YulFunctionCall","src":"13521:45:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13509:6:2"},"nodeType":"YulFunctionCall","src":"13509:58:2"},"nodeType":"YulExpressionStatement","src":"13509:58:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13487:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"13494:3:2","type":""}],"src":"13416:157:2"},{"body":{"nodeType":"YulBlock","src":"13824:418:2","statements":[{"nodeType":"YulAssignment","src":"13835:155:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13986:3:2"}],"functionName":{"name":"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"13842:142:2"},"nodeType":"YulFunctionCall","src":"13842:148:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13835:3:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14062:6:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14071:3:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"14000:61:2"},"nodeType":"YulFunctionCall","src":"14000:75:2"},"nodeType":"YulExpressionStatement","src":"14000:75:2"},{"nodeType":"YulAssignment","src":"14084:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14095:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14100:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14091:3:2"},"nodeType":"YulFunctionCall","src":"14091:12:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14084:3:2"}]},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14175:6:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14184:3:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"14113:61:2"},"nodeType":"YulFunctionCall","src":"14113:75:2"},"nodeType":"YulExpressionStatement","src":"14113:75:2"},{"nodeType":"YulAssignment","src":"14197:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14208:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14213:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14204:3:2"},"nodeType":"YulFunctionCall","src":"14204:12:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14197:3:2"}]},{"nodeType":"YulAssignment","src":"14226:10:2","value":{"name":"pos","nodeType":"YulIdentifier","src":"14233:3:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14226:3:2"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13795:3:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13801:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13809:6:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13820:3:2","type":""}],"src":"13579:663:2"},{"body":{"nodeType":"YulBlock","src":"14306:40:2","statements":[{"nodeType":"YulAssignment","src":"14317:22:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14333:5:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14327:5:2"},"nodeType":"YulFunctionCall","src":"14327:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14317:6:2"}]}]},"name":"array_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14289:5:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14299:6:2","type":""}],"src":"14248:98:2"},{"body":{"nodeType":"YulBlock","src":"14447:73:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14464:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14469:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14457:6:2"},"nodeType":"YulFunctionCall","src":"14457:19:2"},"nodeType":"YulExpressionStatement","src":"14457:19:2"},{"nodeType":"YulAssignment","src":"14485:29:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14504:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14509:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14500:3:2"},"nodeType":"YulFunctionCall","src":"14500:14:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"14485:11:2"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14419:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"14424:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"14435:11:2","type":""}],"src":"14352:168:2"},{"body":{"nodeType":"YulBlock","src":"14616:270:2","statements":[{"nodeType":"YulVariableDeclaration","src":"14626:52:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14672:5:2"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"14640:31:2"},"nodeType":"YulFunctionCall","src":"14640:38:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14630:6:2","type":""}]},{"nodeType":"YulAssignment","src":"14687:77:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14752:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14757:6:2"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14694:57:2"},"nodeType":"YulFunctionCall","src":"14694:70:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14687:3:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14799:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"14806:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14795:3:2"},"nodeType":"YulFunctionCall","src":"14795:16:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14813:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14818:6:2"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"14773:21:2"},"nodeType":"YulFunctionCall","src":"14773:52:2"},"nodeType":"YulExpressionStatement","src":"14773:52:2"},{"nodeType":"YulAssignment","src":"14834:46:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14845:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14872:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"14850:21:2"},"nodeType":"YulFunctionCall","src":"14850:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14841:3:2"},"nodeType":"YulFunctionCall","src":"14841:39:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14834:3:2"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14597:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14604:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14612:3:2","type":""}],"src":"14526:360:2"},{"body":{"nodeType":"YulBlock","src":"15036:275:2","statements":[{"nodeType":"YulAssignment","src":"15046:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15054:3:2"},"nodeType":"YulFunctionCall","src":"15054:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15046:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15126:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15139:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15150:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15135:3:2"},"nodeType":"YulFunctionCall","src":"15135:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"15082:43:2"},"nodeType":"YulFunctionCall","src":"15082:71:2"},"nodeType":"YulExpressionStatement","src":"15082:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15174:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15185:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15170:3:2"},"nodeType":"YulFunctionCall","src":"15170:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15194:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"15200:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15190:3:2"},"nodeType":"YulFunctionCall","src":"15190:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15163:6:2"},"nodeType":"YulFunctionCall","src":"15163:48:2"},"nodeType":"YulExpressionStatement","src":"15163:48:2"},{"nodeType":"YulAssignment","src":"15220:84:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15290:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"15299:4:2"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15228:61:2"},"nodeType":"YulFunctionCall","src":"15228:76:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15220:4:2"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15000:9:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15012:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15020:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15031:4:2","type":""}],"src":"14892:419:2"},{"body":{"nodeType":"YulBlock","src":"15361:105:2","statements":[{"nodeType":"YulAssignment","src":"15371:89:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15386:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"15393:66:2","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15382:3:2"},"nodeType":"YulFunctionCall","src":"15382:78:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"15371:7:2"}]}]},"name":"cleanup_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15343:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"15353:7:2","type":""}],"src":"15317:149:2"},{"body":{"nodeType":"YulBlock","src":"15514:78:2","statements":[{"body":{"nodeType":"YulBlock","src":"15570:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15579:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15582:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15572:6:2"},"nodeType":"YulFunctionCall","src":"15572:12:2"},"nodeType":"YulExpressionStatement","src":"15572:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15537:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15561:5:2"}],"functionName":{"name":"cleanup_t_bytes4","nodeType":"YulIdentifier","src":"15544:16:2"},"nodeType":"YulFunctionCall","src":"15544:23:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15534:2:2"},"nodeType":"YulFunctionCall","src":"15534:34:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15527:6:2"},"nodeType":"YulFunctionCall","src":"15527:42:2"},"nodeType":"YulIf","src":"15524:62:2"}]},"name":"validator_revert_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15507:5:2","type":""}],"src":"15472:120:2"},{"body":{"nodeType":"YulBlock","src":"15660:79:2","statements":[{"nodeType":"YulAssignment","src":"15670:22:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"15685:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15679:5:2"},"nodeType":"YulFunctionCall","src":"15679:13:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"15670:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15727:5:2"}],"functionName":{"name":"validator_revert_t_bytes4","nodeType":"YulIdentifier","src":"15701:25:2"},"nodeType":"YulFunctionCall","src":"15701:32:2"},"nodeType":"YulExpressionStatement","src":"15701:32:2"}]},"name":"abi_decode_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"15638:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"15646:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"15654:5:2","type":""}],"src":"15598:141:2"},{"body":{"nodeType":"YulBlock","src":"15821:273:2","statements":[{"body":{"nodeType":"YulBlock","src":"15867:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"15869:77:2"},"nodeType":"YulFunctionCall","src":"15869:79:2"},"nodeType":"YulExpressionStatement","src":"15869:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15842:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"15851:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15838:3:2"},"nodeType":"YulFunctionCall","src":"15838:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"15863:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15834:3:2"},"nodeType":"YulFunctionCall","src":"15834:32:2"},"nodeType":"YulIf","src":"15831:119:2"},{"nodeType":"YulBlock","src":"15960:127:2","statements":[{"nodeType":"YulVariableDeclaration","src":"15975:15:2","value":{"kind":"number","nodeType":"YulLiteral","src":"15989:1:2","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"15979:6:2","type":""}]},{"nodeType":"YulAssignment","src":"16004:73:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16049:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"16060:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16045:3:2"},"nodeType":"YulFunctionCall","src":"16045:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16069:7:2"}],"functionName":{"name":"abi_decode_t_bytes4_fromMemory","nodeType":"YulIdentifier","src":"16014:30:2"},"nodeType":"YulFunctionCall","src":"16014:63:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16004:6:2"}]}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15791:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15802:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15814:6:2","type":""}],"src":"15745:349:2"},{"body":{"nodeType":"YulBlock","src":"16206:61:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"16228:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"16236:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16224:3:2"},"nodeType":"YulFunctionCall","src":"16224:14:2"},{"hexValue":"494e56414c49445f5349474e4154555245","kind":"string","nodeType":"YulLiteral","src":"16240:19:2","type":"","value":"INVALID_SIGNATURE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16217:6:2"},"nodeType":"YulFunctionCall","src":"16217:43:2"},"nodeType":"YulExpressionStatement","src":"16217:43:2"}]},"name":"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"16198:6:2","type":""}],"src":"16100:167:2"},{"body":{"nodeType":"YulBlock","src":"16419:220:2","statements":[{"nodeType":"YulAssignment","src":"16429:74:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16495:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"16500:2:2","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16436:58:2"},"nodeType":"YulFunctionCall","src":"16436:67:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16429:3:2"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16601:3:2"}],"functionName":{"name":"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","nodeType":"YulIdentifier","src":"16512:88:2"},"nodeType":"YulFunctionCall","src":"16512:93:2"},"nodeType":"YulExpressionStatement","src":"16512:93:2"},{"nodeType":"YulAssignment","src":"16614:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16625:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"16630:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16621:3:2"},"nodeType":"YulFunctionCall","src":"16621:12:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16614:3:2"}]}]},"name":"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16407:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16415:3:2","type":""}],"src":"16273:366:2"},{"body":{"nodeType":"YulBlock","src":"16816:248:2","statements":[{"nodeType":"YulAssignment","src":"16826:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16838:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"16849:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16834:3:2"},"nodeType":"YulFunctionCall","src":"16834:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16826:4:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16873:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"16884:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16869:3:2"},"nodeType":"YulFunctionCall","src":"16869:17:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16892:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"16898:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16888:3:2"},"nodeType":"YulFunctionCall","src":"16888:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16862:6:2"},"nodeType":"YulFunctionCall","src":"16862:47:2"},"nodeType":"YulExpressionStatement","src":"16862:47:2"},{"nodeType":"YulAssignment","src":"16918:139:2","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17052:4:2"}],"functionName":{"name":"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16926:124:2"},"nodeType":"YulFunctionCall","src":"16926:131:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16918:4:2"}]}]},"name":"abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16796:9:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16811:4:2","type":""}],"src":"16645:419:2"},{"body":{"nodeType":"YulBlock","src":"17113:43:2","statements":[{"nodeType":"YulAssignment","src":"17123:27:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17138:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"17145:4:2","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17134:3:2"},"nodeType":"YulFunctionCall","src":"17134:16:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"17123:7:2"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17095:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"17105:7:2","type":""}],"src":"17070:86:2"},{"body":{"nodeType":"YulBlock","src":"17190:152:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17207:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17210:77:2","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17200:6:2"},"nodeType":"YulFunctionCall","src":"17200:88:2"},"nodeType":"YulExpressionStatement","src":"17200:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17304:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17307:4:2","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17297:6:2"},"nodeType":"YulFunctionCall","src":"17297:15:2"},"nodeType":"YulExpressionStatement","src":"17297:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17328:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17331:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17321:6:2"},"nodeType":"YulFunctionCall","src":"17321:15:2"},"nodeType":"YulExpressionStatement","src":"17321:15:2"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"17162:180:2"},{"body":{"nodeType":"YulBlock","src":"17390:195:2","statements":[{"nodeType":"YulAssignment","src":"17400:23:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17421:1:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17405:15:2"},"nodeType":"YulFunctionCall","src":"17405:18:2"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"17400:1:2"}]},{"nodeType":"YulAssignment","src":"17432:23:2","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17453:1:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17437:15:2"},"nodeType":"YulFunctionCall","src":"17437:18:2"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"17432:1:2"}]},{"body":{"nodeType":"YulBlock","src":"17531:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17533:16:2"},"nodeType":"YulFunctionCall","src":"17533:18:2"},"nodeType":"YulExpressionStatement","src":"17533:18:2"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17514:1:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17521:4:2","type":"","value":"0xff"},{"name":"y","nodeType":"YulIdentifier","src":"17527:1:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17517:3:2"},"nodeType":"YulFunctionCall","src":"17517:12:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17511:2:2"},"nodeType":"YulFunctionCall","src":"17511:19:2"},"nodeType":"YulIf","src":"17508:45:2"},{"nodeType":"YulAssignment","src":"17563:16:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17574:1:2"},{"name":"y","nodeType":"YulIdentifier","src":"17577:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17570:3:2"},"nodeType":"YulFunctionCall","src":"17570:9:2"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"17563:3:2"}]}]},"name":"checked_add_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17377:1:2","type":""},{"name":"y","nodeType":"YulTypedName","src":"17380:1:2","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"17386:3:2","type":""}],"src":"17348:237:2"},{"body":{"nodeType":"YulBlock","src":"17652:51:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17669:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17690:5:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17674:15:2"},"nodeType":"YulFunctionCall","src":"17674:22:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17662:6:2"},"nodeType":"YulFunctionCall","src":"17662:35:2"},"nodeType":"YulExpressionStatement","src":"17662:35:2"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17640:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"17647:3:2","type":""}],"src":"17591:112:2"},{"body":{"nodeType":"YulBlock","src":"17887:367:2","statements":[{"nodeType":"YulAssignment","src":"17897:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17909:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"17920:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17905:3:2"},"nodeType":"YulFunctionCall","src":"17905:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17897:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17978:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17991:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18002:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17987:3:2"},"nodeType":"YulFunctionCall","src":"17987:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"17934:43:2"},"nodeType":"YulFunctionCall","src":"17934:71:2"},"nodeType":"YulExpressionStatement","src":"17934:71:2"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18055:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18068:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18079:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18064:3:2"},"nodeType":"YulFunctionCall","src":"18064:18:2"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulIdentifier","src":"18015:39:2"},"nodeType":"YulFunctionCall","src":"18015:68:2"},"nodeType":"YulExpressionStatement","src":"18015:68:2"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18137:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18150:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18161:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18146:3:2"},"nodeType":"YulFunctionCall","src":"18146:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"18093:43:2"},"nodeType":"YulFunctionCall","src":"18093:72:2"},"nodeType":"YulExpressionStatement","src":"18093:72:2"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18219:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18232:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18243:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18228:3:2"},"nodeType":"YulFunctionCall","src":"18228:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"18175:43:2"},"nodeType":"YulFunctionCall","src":"18175:72:2"},"nodeType":"YulExpressionStatement","src":"18175:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17835:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17847:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17855:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17863:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17871:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17882:4:2","type":""}],"src":"17709:545:2"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct EIP712Domain\n function abi_decode_t_struct$_EIP712Domain_$8_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // name\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // version\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // chainId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_EIP712Domain_$8_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n // struct Person\n function abi_decode_t_struct$_Person_$26_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // name\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // age\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Person_$26_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Person_$26_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // struct signedPerson\n function abi_decode_t_struct$_signedPerson_$21_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // signature\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // signer\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // message\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_struct$_Person_$26_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_signedPerson_$21_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541(memPtr) {\n\n mstore(add(memPtr, 0), 0x1901000000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541(pos)\n end := add(pos, 2)\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88(memPtr) {\n\n mstore(add(memPtr, 0), \"INVALID_SIGNATURE\")\n\n }\n\n function abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint8(x, y) -> sum {\n x := cleanup_t_uint8(x)\n y := cleanup_t_uint8(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n","id":2,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220ca0a05a510565d9ee49471de5fd24a13ae81e1ff3aee845a020d6cb87285bdc764736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BC39162 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x83EBB771 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x8F4F876A EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA23CF6E EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x4B1B66E1DAD0EB5853B62DD86EBAC7B66C400129B72DA1FF5FDA43303A4F44DB DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x16F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EC PUSH2 0x166 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FE SWAP3 SWAP2 SWAP1 PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26B JUMPI PUSH1 0x0 PUSH2 0x25E DUP3 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x36B JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP PUSH2 0x366 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E DUP4 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B0 SWAP3 SWAP2 SWAP1 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0xC68 JUMP JUMPDEST SWAP1 POP PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x352 SWAP1 PUSH2 0xCE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x41 DUP6 MLOAD EQ PUSH2 0x386 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH1 0x1B DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x1B DUP2 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0xD3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1B DUP2 PUSH1 0xFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI POP PUSH1 0x1C DUP2 PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x1 DUP7 DUP3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x406 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD83 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x428 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4A0 DUP3 PUSH2 0x457 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4BF JUMPI PUSH2 0x4BE PUSH2 0x468 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D2 PUSH2 0x43E JUMP JUMPDEST SWAP1 POP PUSH2 0x4DE DUP3 DUP3 PUSH2 0x497 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x516 DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x545 PUSH2 0x540 DUP5 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x56C DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x599 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x532 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5D2 DUP2 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5ED PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x5F8 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x618 JUMPI PUSH2 0x617 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x624 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x648 JUMPI PUSH2 0x647 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x654 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x668 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x68A JUMPI PUSH2 0x689 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A7 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x6B4 DUP5 DUP3 DUP6 ADD PUSH2 0x5D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D0 DUP2 PUSH2 0x6BD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x711 PUSH1 0x40 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x731 JUMPI PUSH2 0x730 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x73D DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x751 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x773 JUMPI PUSH2 0x772 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x79D DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x7CA DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EA PUSH2 0x7E5 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x811 DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x82E JUMPI PUSH2 0x82D PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x83E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x872 DUP3 PUSH2 0x847 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x882 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP2 EQ PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x89F DUP2 PUSH2 0x879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x8C5 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8E5 JUMPI PUSH2 0x8E4 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x8F1 DUP5 DUP3 DUP6 ADD PUSH2 0x819 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x905 DUP5 DUP3 DUP6 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x935 DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x957 JUMPI PUSH2 0x956 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x974 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x981 DUP5 DUP3 DUP6 ADD PUSH2 0x8A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x98A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0E DUP3 PUSH2 0x9B4 JUMP JUMPDEST PUSH2 0xA18 DUP2 DUP6 PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH2 0xA28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xA60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA72 DUP2 DUP7 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA86 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xA95 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAB3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAC5 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xAD4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1D PUSH1 0x2 DUP4 PUSH2 0xADC JUMP JUMPDEST SWAP2 POP PUSH2 0xB28 DUP3 PUSH2 0xAE7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB4E PUSH2 0xB49 DUP3 PUSH2 0x6BD JUMP JUMPDEST PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5F DUP3 PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6B DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xB7B DUP3 DUP5 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB8B JUMP JUMPDEST PUSH2 0xBBC DUP2 DUP6 PUSH2 0xB96 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xBD5 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xBF5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC07 DUP2 DUP5 PUSH2 0xBA7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC45 DUP2 PUSH2 0xC10 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC62 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7E JUMPI PUSH2 0xC7D PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8C DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCB PUSH1 0x11 DUP4 PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP PUSH2 0xCD6 DUP3 PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCFA DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD48 DUP3 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0xD01 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xD69 JUMPI PUSH2 0xD68 PUSH2 0xD0E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xD98 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDA5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xD74 JUMP JUMPDEST PUSH2 0xDB2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDBF PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA EXP SDIV 0xA5 LT JUMP 0x5D SWAP15 0xE4 SWAP5 PUSH18 0xDE5FD24A13AE81E1FF3AEE845A020D6CB872 DUP6 0xBD 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"89:449:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:279:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;437:99:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2538:235:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:768;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2255:279;2342:7;2362:20;177:69;2432:6;:11;;;2451:6;:14;;;2473:6;:14;;;2385:108;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2362:131;;2521:7;2511:18;;;;;;2504:25;;;2255:279;;;:::o;437:99:1:-;493:7;519:10;;512:17;;437:99;:::o;2538:235:0:-;2613:7;2633:20;415:44;2697:6;:11;;;2716:6;:10;;;2656:76;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2633:99;;2760:7;2750:18;;;;;;2743:25;;;2538:235;;;:::o;2779:768::-;2856:7;2873:18;2894:37;2916:6;:14;;;2894:21;:37::i;:::-;2873:58;;2939:14;3025:15;:13;:15::i;:::-;3052:10;2975:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2956:124;;;;;;2939:141;;3110:42;3093:59;;:6;:13;;;:59;;;3089:452;;3164:23;3190:63;3209:6;3227;:16;;;3190:7;:63::i;:::-;3164:89;;3270:15;3263:22;;;;;;;3089:452;3353:13;3385:6;:13;;;3369:47;;;3417:6;3425;:16;;;3369:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3353:89;;3470:10;3460:20;;:6;:20;;;;3452:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3519:6;:13;;;3512:20;;;;;2779:768;;;;:::o;1549:702::-;1621:7;1636:9;1651;1666:7;1732:2;1718:3;:10;:16;1714:56;;1760:1;1744:19;;;;;;;1714:56;1865:2;1860:3;1856:12;1850:19;1845:24;;1896:2;1891:3;1887:12;1881:19;1876:24;;1935:2;1930:3;1926:12;1920:19;1917:1;1912:28;1907:33;;2046:2;2042:1;:6;;;2038:34;;;2063:2;2058:7;;;;;:::i;:::-;;;2038:34;2146:2;2141:1;:7;;;;:18;;;;;2157:2;2152:1;:7;;;;2141:18;2137:110;;;2185:1;2169:19;;;;;;;2137:110;2216:24;2226:4;2232:1;2235;2238;2216:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2209:31;;;;;1549:702;;;;;:::o;7:75:2:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:117::-;1282:1;1279;1272:12;1296:117;1405:1;1402;1395:12;1419:117;1528:1;1525;1518:12;1542:308;1604:4;1694:18;1686:6;1683:30;1680:56;;;1716:18;;:::i;:::-;1680:56;1754:29;1776:6;1754:29;:::i;:::-;1746:37;;1838:4;1832;1828:15;1820:23;;1542:308;;;:::o;1856:154::-;1940:6;1935:3;1930;1917:30;2002:1;1993:6;1988:3;1984:16;1977:27;1856:154;;;:::o;2016:412::-;2094:5;2119:66;2135:49;2177:6;2135:49;:::i;:::-;2119:66;:::i;:::-;2110:75;;2208:6;2201:5;2194:21;2246:4;2239:5;2235:16;2284:3;2275:6;2270:3;2266:16;2263:25;2260:112;;;2291:79;;:::i;:::-;2260:112;2381:41;2415:6;2410:3;2405;2381:41;:::i;:::-;2100:328;2016:412;;;;;:::o;2448:340::-;2504:5;2553:3;2546:4;2538:6;2534:17;2530:27;2520:122;;2561:79;;:::i;:::-;2520:122;2678:6;2665:20;2703:79;2778:3;2770:6;2763:4;2755:6;2751:17;2703:79;:::i;:::-;2694:88;;2510:278;2448:340;;;;:::o;2794:77::-;2831:7;2860:5;2849:16;;2794:77;;;:::o;2877:122::-;2950:24;2968:5;2950:24;:::i;:::-;2943:5;2940:35;2930:63;;2989:1;2986;2979:12;2930:63;2877:122;:::o;3005:139::-;3051:5;3089:6;3076:20;3067:29;;3105:33;3132:5;3105:33;:::i;:::-;3005:139;;;;:::o;3177:1083::-;3253:5;3297:4;3285:9;3280:3;3276:19;3272:30;3269:117;;;3305:79;;:::i;:::-;3269:117;3404:21;3420:4;3404:21;:::i;:::-;3395:30;;3512:1;3501:9;3497:17;3484:31;3542:18;3534:6;3531:30;3528:117;;;3564:79;;:::i;:::-;3528:117;3684:59;3739:3;3730:6;3719:9;3715:22;3684:59;:::i;:::-;3677:4;3670:5;3666:16;3659:85;3435:320;3845:2;3834:9;3830:18;3817:32;3876:18;3868:6;3865:30;3862:117;;;3898:79;;:::i;:::-;3862:117;4018:59;4073:3;4064:6;4053:9;4049:22;4018:59;:::i;:::-;4011:4;4004:5;4000:16;3993:85;3765:324;4151:2;4192:49;4237:3;4228:6;4217:9;4213:22;4192:49;:::i;:::-;4185:4;4178:5;4174:16;4167:75;4099:154;3177:1083;;;;:::o;4266:543::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:119;;;4407:79;;:::i;:::-;4369:119;4555:1;4544:9;4540:17;4527:31;4585:18;4577:6;4574:30;4571:117;;;4607:79;;:::i;:::-;4571:117;4712:80;4784:7;4775:6;4764:9;4760:22;4712:80;:::i;:::-;4702:90;;4498:304;4266:543;;;;:::o;4815:77::-;4852:7;4881:5;4870:16;;4815:77;;;:::o;4898:118::-;4985:24;5003:5;4985:24;:::i;:::-;4980:3;4973:37;4898:118;;:::o;5022:222::-;5115:4;5153:2;5142:9;5138:18;5130:26;;5166:71;5234:1;5223:9;5219:17;5210:6;5166:71;:::i;:::-;5022:222;;;;:::o;5271:740::-;5342:5;5386:4;5374:9;5369:3;5365:19;5361:30;5358:117;;;5394:79;;:::i;:::-;5358:117;5493:21;5509:4;5493:21;:::i;:::-;5484:30;;5601:1;5590:9;5586:17;5573:31;5631:18;5623:6;5620:30;5617:117;;;5653:79;;:::i;:::-;5617:117;5773:59;5828:3;5819:6;5808:9;5804:22;5773:59;:::i;:::-;5766:4;5759:5;5755:16;5748:85;5524:320;5902:2;5943:49;5988:3;5979:6;5968:9;5964:22;5943:49;:::i;:::-;5936:4;5929:5;5925:16;5918:75;5854:150;5271:740;;;;:::o;6017:533::-;6098:6;6147:2;6135:9;6126:7;6122:23;6118:32;6115:119;;;6153:79;;:::i;:::-;6115:119;6301:1;6290:9;6286:17;6273:31;6331:18;6323:6;6320:30;6317:117;;;6353:79;;:::i;:::-;6317:117;6458:75;6525:7;6516:6;6505:9;6501:22;6458:75;:::i;:::-;6448:85;;6244:299;6017:533;;;;:::o;6556:307::-;6617:4;6707:18;6699:6;6696:30;6693:56;;;6729:18;;:::i;:::-;6693:56;6767:29;6789:6;6767:29;:::i;:::-;6759:37;;6851:4;6845;6841:15;6833:23;;6556:307;;;:::o;6869:410::-;6946:5;6971:65;6987:48;7028:6;6987:48;:::i;:::-;6971:65;:::i;:::-;6962:74;;7059:6;7052:5;7045:21;7097:4;7090:5;7086:16;7135:3;7126:6;7121:3;7117:16;7114:25;7111:112;;;7142:79;;:::i;:::-;7111:112;7232:41;7266:6;7261:3;7256;7232:41;:::i;:::-;6952:327;6869:410;;;;;:::o;7298:338::-;7353:5;7402:3;7395:4;7387:6;7383:17;7379:27;7369:122;;7410:79;;:::i;:::-;7369:122;7527:6;7514:20;7552:78;7626:3;7618:6;7611:4;7603:6;7599:17;7552:78;:::i;:::-;7543:87;;7359:277;7298:338;;;;:::o;7642:126::-;7679:7;7719:42;7712:5;7708:54;7697:65;;7642:126;;;:::o;7774:96::-;7811:7;7840:24;7858:5;7840:24;:::i;:::-;7829:35;;7774:96;;;:::o;7876:122::-;7949:24;7967:5;7949:24;:::i;:::-;7942:5;7939:35;7929:63;;7988:1;7985;7978:12;7929:63;7876:122;:::o;8004:139::-;8050:5;8088:6;8075:20;8066:29;;8104:33;8131:5;8104:33;:::i;:::-;8004:139;;;;:::o;8176:1099::-;8253:5;8297:4;8285:9;8280:3;8276:19;8272:30;8269:117;;;8305:79;;:::i;:::-;8269:117;8404:21;8420:4;8404:21;:::i;:::-;8395:30;;8517:1;8506:9;8502:17;8489:31;8547:18;8539:6;8536:30;8533:117;;;8569:79;;:::i;:::-;8533:117;8689:58;8743:3;8734:6;8723:9;8719:22;8689:58;:::i;:::-;8682:4;8675:5;8671:16;8664:84;8435:324;8820:2;8861:49;8906:3;8897:6;8886:9;8882:22;8861:49;:::i;:::-;8854:4;8847:5;8843:16;8836:75;8769:153;9012:2;9001:9;8997:18;8984:32;9043:18;9035:6;9032:30;9029:117;;;9065:79;;:::i;:::-;9029:117;9185:71;9252:3;9243:6;9232:9;9228:22;9185:71;:::i;:::-;9178:4;9171:5;9167:16;9160:97;8932:336;8176:1099;;;;:::o;9281:545::-;9368:6;9417:2;9405:9;9396:7;9392:23;9388:32;9385:119;;;9423:79;;:::i;:::-;9385:119;9571:1;9560:9;9556:17;9543:31;9601:18;9593:6;9590:30;9587:117;;;9623:79;;:::i;:::-;9587:117;9728:81;9801:7;9792:6;9781:9;9777:22;9728:81;:::i;:::-;9718:91;;9514:305;9281:545;;;;:::o;9832:118::-;9919:24;9937:5;9919:24;:::i;:::-;9914:3;9907:37;9832:118;;:::o;9956:222::-;10049:4;10087:2;10076:9;10072:18;10064:26;;10100:71;10168:1;10157:9;10153:17;10144:6;10100:71;:::i;:::-;9956:222;;;;:::o;10184:99::-;10236:6;10270:5;10264:12;10254:22;;10184:99;;;:::o;10289:169::-;10373:11;10407:6;10402:3;10395:19;10447:4;10442:3;10438:14;10423:29;;10289:169;;;;:::o;10464:307::-;10532:1;10542:113;10556:6;10553:1;10550:13;10542:113;;;10641:1;10636:3;10632:11;10626:18;10622:1;10617:3;10613:11;10606:39;10578:2;10575:1;10571:10;10566:15;;10542:113;;;10673:6;10670:1;10667:13;10664:101;;;10753:1;10744:6;10739:3;10735:16;10728:27;10664:101;10513:258;10464:307;;;:::o;10777:364::-;10865:3;10893:39;10926:5;10893:39;:::i;:::-;10948:71;11012:6;11007:3;10948:71;:::i;:::-;10941:78;;11028:52;11073:6;11068:3;11061:4;11054:5;11050:16;11028:52;:::i;:::-;11105:29;11127:6;11105:29;:::i;:::-;11100:3;11096:39;11089:46;;10869:272;10777:364;;;;:::o;11147:118::-;11234:24;11252:5;11234:24;:::i;:::-;11229:3;11222:37;11147:118;;:::o;11271:735::-;11488:4;11526:3;11515:9;11511:19;11503:27;;11540:71;11608:1;11597:9;11593:17;11584:6;11540:71;:::i;:::-;11658:9;11652:4;11648:20;11643:2;11632:9;11628:18;11621:48;11686:78;11759:4;11750:6;11686:78;:::i;:::-;11678:86;;11811:9;11805:4;11801:20;11796:2;11785:9;11781:18;11774:48;11839:78;11912:4;11903:6;11839:78;:::i;:::-;11831:86;;11927:72;11995:2;11984:9;11980:18;11971:6;11927:72;:::i;:::-;11271:735;;;;;;;:::o;12012:533::-;12181:4;12219:2;12208:9;12204:18;12196:26;;12232:71;12300:1;12289:9;12285:17;12276:6;12232:71;:::i;:::-;12350:9;12344:4;12340:20;12335:2;12324:9;12320:18;12313:48;12378:78;12451:4;12442:6;12378:78;:::i;:::-;12370:86;;12466:72;12534:2;12523:9;12519:18;12510:6;12466:72;:::i;:::-;12012:533;;;;;;:::o;12551:148::-;12653:11;12690:3;12675:18;;12551:148;;;;:::o;12705:214::-;12845:66;12841:1;12833:6;12829:14;12822:90;12705:214;:::o;12925:400::-;13085:3;13106:84;13188:1;13183:3;13106:84;:::i;:::-;13099:91;;13199:93;13288:3;13199:93;:::i;:::-;13317:1;13312:3;13308:11;13301:18;;12925:400;;;:::o;13331:79::-;13370:7;13399:5;13388:16;;13331:79;;;:::o;13416:157::-;13521:45;13541:24;13559:5;13541:24;:::i;:::-;13521:45;:::i;:::-;13516:3;13509:58;13416:157;;:::o;13579:663::-;13820:3;13842:148;13986:3;13842:148;:::i;:::-;13835:155;;14000:75;14071:3;14062:6;14000:75;:::i;:::-;14100:2;14095:3;14091:12;14084:19;;14113:75;14184:3;14175:6;14113:75;:::i;:::-;14213:2;14208:3;14204:12;14197:19;;14233:3;14226:10;;13579:663;;;;;:::o;14248:98::-;14299:6;14333:5;14327:12;14317:22;;14248:98;;;:::o;14352:168::-;14435:11;14469:6;14464:3;14457:19;14509:4;14504:3;14500:14;14485:29;;14352:168;;;;:::o;14526:360::-;14612:3;14640:38;14672:5;14640:38;:::i;:::-;14694:70;14757:6;14752:3;14694:70;:::i;:::-;14687:77;;14773:52;14818:6;14813:3;14806:4;14799:5;14795:16;14773:52;:::i;:::-;14850:29;14872:6;14850:29;:::i;:::-;14845:3;14841:39;14834:46;;14616:270;14526:360;;;;:::o;14892:419::-;15031:4;15069:2;15058:9;15054:18;15046:26;;15082:71;15150:1;15139:9;15135:17;15126:6;15082:71;:::i;:::-;15200:9;15194:4;15190:20;15185:2;15174:9;15170:18;15163:48;15228:76;15299:4;15290:6;15228:76;:::i;:::-;15220:84;;14892:419;;;;;:::o;15317:149::-;15353:7;15393:66;15386:5;15382:78;15371:89;;15317:149;;;:::o;15472:120::-;15544:23;15561:5;15544:23;:::i;:::-;15537:5;15534:34;15524:62;;15582:1;15579;15572:12;15524:62;15472:120;:::o;15598:141::-;15654:5;15685:6;15679:13;15670:22;;15701:32;15727:5;15701:32;:::i;:::-;15598:141;;;;:::o;15745:349::-;15814:6;15863:2;15851:9;15842:7;15838:23;15834:32;15831:119;;;15869:79;;:::i;:::-;15831:119;15989:1;16014:63;16069:7;16060:6;16049:9;16045:22;16014:63;:::i;:::-;16004:73;;15960:127;15745:349;;;;:::o;16100:167::-;16240:19;16236:1;16228:6;16224:14;16217:43;16100:167;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:86::-;17105:7;17145:4;17138:5;17134:16;17123:27;;17070:86;;;:::o;17162:180::-;17210:77;17207:1;17200:88;17307:4;17304:1;17297:15;17331:4;17328:1;17321:15;17348:237;17386:3;17405:18;17421:1;17405:18;:::i;:::-;17400:23;;17437:18;17453:1;17437:18;:::i;:::-;17432:23;;17527:1;17521:4;17517:12;17514:1;17511:19;17508:45;;;17533:18;;:::i;:::-;17508:45;17577:1;17574;17570:9;17563:16;;17348:237;;;;:::o;17591:112::-;17674:22;17690:5;17674:22;:::i;:::-;17669:3;17662:35;17591:112;;:::o;17709:545::-;17882:4;17920:3;17909:9;17905:19;17897:27;;17934:71;18002:1;17991:9;17987:17;17978:6;17934:71;:::i;:::-;18015:68;18079:2;18068:9;18064:18;18055:6;18015:68;:::i;:::-;18093:72;18161:2;18150:9;18146:18;18137:6;18093:72;:::i;:::-;18175;18243:2;18232:9;18228:18;18219:6;18175:72;:::i;:::-;17709:545;;;;;;;:::o"},"methodIdentifiers":{"GET_EIP712DOMAIN_PACKETHASH((string,string,uint256))":"4bc39162","GET_PERSON_PACKETHASH((string,uint256))":"8f4f876a","getDomainHash()":"83ebb771","verifySignedPerson((bytes,address,(string,uint256)))":"ea23cf6e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct EIP712Domain\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_EIP712DOMAIN_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_PERSON_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"message\",\"type\":\"tuple\"}],\"internalType\":\"struct signedPerson\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"verifySignedPerson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MockEIP712Decoder.sol\":\"MockEIP712Decoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]},\"contracts/MockEIP712Decoder.sol\":{\"keccak256\":\"0x3df7d3bcc426f4cc9a885837894fcfcbded0501d432e9c0daf22a50fd6b7adbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdded3599c28aef545f3d76186f3339079324bc87a1548e5e3678ff584fe24c7\",\"dweb:/ipfs/QmRyyBE978N8P4C4nq4yF5M3GSd3hgXYQ8m3VHVvXyLDmA\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/build-info/21fa6fc66024836561f3d36a91b0eddc.json b/artifacts/build-info/21fa6fc66024836561f3d36a91b0eddc.json new file mode 100644 index 0000000..a2ee841 --- /dev/null +++ b/artifacts/build-info/21fa6fc66024836561f3d36a91b0eddc.json @@ -0,0 +1 @@ +{"id":"21fa6fc66024836561f3d36a91b0eddc","_format":"hh-sol-build-info-1","solcVersion":"0.8.13","solcLongVersion":"0.8.13+commit.abaa5c0e","input":{"language":"Solidity","sources":{"contracts/EIP712Decoder.sol":{"content":"pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n\n\nstruct EIP712Domain {\n string name;\n string version;\n uint256 chainId;\n}\n\nbytes32 constant EIP712DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,string version,uint256 chainId)\");\n\n\nstruct signedPerson {\n bytes signature;\n address signer;\n Person message;\n}\n\n\nstruct Person {\n string name;\n uint256 age;\n}\n\nbytes32 constant PERSON_TYPEHASH = keccak256(\"Person(string name,uint256 age)\");\n\n\nabstract contract ERC1271Contract {\n\n // bytes4(keccak256(\"isValidSignature(bytes32,bytes)\")\n bytes4 constant internal MAGICVALUE = 0x1626ba7e;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n virtual\n returns (bytes4 magicValue);\n}\n\nabstract contract EIP712Decoder {\n function getDomainHash () public view virtual returns (bytes32);\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n\n function GET_EIP712DOMAIN_PACKETHASH (EIP712Domain memory _input) public pure returns (bytes32) {\n \n bytes memory encoded = abi.encode(\n EIP712DOMAIN_TYPEHASH,\n _input.name,\n _input.version,\n _input.chainId\n );\n \n return keccak256(encoded);\n }\n\n function GET_PERSON_PACKETHASH (Person memory _input) public pure returns (bytes32) {\n \n bytes memory encoded = abi.encode(\n PERSON_TYPEHASH,\n _input.name,\n _input.age\n );\n \n return keccak256(encoded);\n }\n\n function verifySignedPerson(signedPerson memory _input) public view returns (address) {\n bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainHash(),\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n \n\n}\n\n"},"contracts/MockEIP712Decoder.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.13;\n\nimport \"./EIP712Decoder.sol\";\n\ncontract MockEIP712Decoder is EIP712Decoder {\n bytes32 domainHash;\n constructor(uint256 chainId) {\n domainHash = keccak256(abi.encode(\n EIP712DOMAIN_TYPEHASH,\n keccak256(bytes(\"MockEIP712Decoder\")),\n keccak256(bytes(\"1\")),\n uint256(chainId),\n address(this),\n bytes32(uint256(0))\n ));\n }\n\n function getDomainHash () public view override returns (bytes32) {\n return domainHash;\n }\n}\n"}},"settings":{"optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/EIP712Decoder.sol":{"ast":{"absolutePath":"contracts/EIP712Decoder.sol","exportedSymbols":{"EIP712DOMAIN_TYPEHASH":[13],"EIP712Decoder":[233],"EIP712Domain":[8],"ERC1271Contract":[45],"PERSON_TYPEHASH":[31],"Person":[26],"signedPerson":[21]},"id":234,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".13"],"nodeType":"PragmaDirective","src":"0:24:0"},{"canonicalName":"EIP712Domain","id":8,"members":[{"constant":false,"id":3,"mutability":"mutable","name":"name","nameLocation":"90:4:0","nodeType":"VariableDeclaration","scope":8,"src":"83:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2,"name":"string","nodeType":"ElementaryTypeName","src":"83:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"version","nameLocation":"105:7:0","nodeType":"VariableDeclaration","scope":8,"src":"98:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4,"name":"string","nodeType":"ElementaryTypeName","src":"98:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"chainId","nameLocation":"124:7:0","nodeType":"VariableDeclaration","scope":8,"src":"116:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"116:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"EIP712Domain","nameLocation":"66:12:0","nodeType":"StructDefinition","scope":234,"src":"59:75:0","visibility":"public"},{"constant":true,"id":13,"mutability":"constant","name":"EIP712DOMAIN_TYPEHASH","nameLocation":"153:21:0","nodeType":"VariableDeclaration","scope":234,"src":"136:110:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e496429","id":11,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"187:58:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""},"value":"EIP712Domain(string name,string version,uint256 chainId)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""}],"id":10,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"177:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"177:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"canonicalName":"signedPerson","id":21,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"signature","nameLocation":"280:9:0","nodeType":"VariableDeclaration","scope":21,"src":"274:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":14,"name":"bytes","nodeType":"ElementaryTypeName","src":"274:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"signer","nameLocation":"301:6:0","nodeType":"VariableDeclaration","scope":21,"src":"293:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"message","nameLocation":"318:7:0","nodeType":"VariableDeclaration","scope":21,"src":"311:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"},"typeName":{"id":19,"nodeType":"UserDefinedTypeName","pathNode":{"id":18,"name":"Person","nodeType":"IdentifierPath","referencedDeclaration":26,"src":"311:6:0"},"referencedDeclaration":26,"src":"311:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"}},"visibility":"internal"}],"name":"signedPerson","nameLocation":"257:12:0","nodeType":"StructDefinition","scope":234,"src":"250:78:0","visibility":"public"},{"canonicalName":"Person","id":26,"members":[{"constant":false,"id":23,"mutability":"mutable","name":"name","nameLocation":"356:4:0","nodeType":"VariableDeclaration","scope":26,"src":"349:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22,"name":"string","nodeType":"ElementaryTypeName","src":"349:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"age","nameLocation":"372:3:0","nodeType":"VariableDeclaration","scope":26,"src":"364:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Person","nameLocation":"338:6:0","nodeType":"StructDefinition","scope":234,"src":"331:47:0","visibility":"public"},{"constant":true,"id":31,"mutability":"constant","name":"PERSON_TYPEHASH","nameLocation":"397:15:0","nodeType":"VariableDeclaration","scope":234,"src":"380:79:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27,"name":"bytes32","nodeType":"ElementaryTypeName","src":"380:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"506572736f6e28737472696e67206e616d652c75696e743235362061676529","id":29,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"425:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db","typeString":"literal_string \"Person(string name,uint256 age)\""},"value":"Person(string name,uint256 age)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db","typeString":"literal_string \"Person(string name,uint256 age)\""}],"id":28,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"415:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":30,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"415:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1271Contract","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":45,"linearizedBaseContracts":[45],"name":"ERC1271Contract","nameLocation":"481:15:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":34,"mutability":"constant","name":"MAGICVALUE","nameLocation":"584:10:0","nodeType":"VariableDeclaration","scope":45,"src":"559:48:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32,"name":"bytes4","nodeType":"ElementaryTypeName","src":"559:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783136323662613765","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"597:10:0","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"visibility":"internal"},{"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"612:414:0","text":" @dev Should return whether the signature provided is valid for the provided hash\n @param _hash Hash of the data to be signed\n @param _signature Signature byte array associated with _hash\n MUST return the bytes4 magic value 0x1626ba7e when function passes.\n MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n MUST allow external calls"},"functionSelector":"1626ba7e","id":44,"implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"1039:16:0","nodeType":"FunctionDefinition","parameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37,"mutability":"mutable","name":"_hash","nameLocation":"1069:5:0","nodeType":"VariableDeclaration","scope":44,"src":"1061:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1061:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39,"mutability":"mutable","name":"_signature","nameLocation":"1094:10:0","nodeType":"VariableDeclaration","scope":44,"src":"1081:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38,"name":"bytes","nodeType":"ElementaryTypeName","src":"1081:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1055:50:0"},"returnParameters":{"id":43,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42,"mutability":"mutable","name":"magicValue","nameLocation":"1159:10:0","nodeType":"VariableDeclaration","scope":44,"src":"1152:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1152:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1151:19:0"},"scope":45,"src":"1030:141:0","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":234,"src":"463:710:0","usedErrors":[]},{"abstract":true,"baseContracts":[],"canonicalName":"EIP712Decoder","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":233,"linearizedBaseContracts":[233],"name":"EIP712Decoder","nameLocation":"1193:13:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"83ebb771","id":50,"implemented":false,"kind":"function","modifiers":[],"name":"getDomainHash","nameLocation":"1220:13:0","nodeType":"FunctionDefinition","parameters":{"id":46,"nodeType":"ParameterList","parameters":[],"src":"1234:2:0"},"returnParameters":{"id":49,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50,"src":"1266:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1266:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1265:9:0"},"scope":233,"src":"1211:64:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":114,"nodeType":"Block","src":"1630:621:0","statements":[{"assignments":[61],"declarations":[{"constant":false,"id":61,"mutability":"mutable","name":"r","nameLocation":"1644:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1636:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1636:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":62,"nodeType":"VariableDeclarationStatement","src":"1636:9:0"},{"assignments":[64],"declarations":[{"constant":false,"id":64,"mutability":"mutable","name":"s","nameLocation":"1659:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1651:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":63,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1651:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":65,"nodeType":"VariableDeclarationStatement","src":"1651:9:0"},{"assignments":[67],"declarations":[{"constant":false,"id":67,"mutability":"mutable","name":"v","nameLocation":"1672:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1666:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":66,"name":"uint8","nodeType":"ElementaryTypeName","src":"1666:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":68,"nodeType":"VariableDeclarationStatement","src":"1666:7:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":69,"name":"sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55,"src":"1718:3:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1718:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3635","id":71,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1732:2:0","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"1718:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80,"nodeType":"IfStatement","src":"1714:56:0","trueBody":{"id":79,"nodeType":"Block","src":"1736:34:0","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":75,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1760:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1752:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1752:7:0","typeDescriptions":{}}},"id":76,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1752:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":77,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1751:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":78,"nodeType":"Return","src":"1744:19:0"}]}},{"AST":{"nodeType":"YulBlock","src":"1837:109:0","statements":[{"nodeType":"YulAssignment","src":"1845:24:0","value":{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1860:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1865:2:0","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1856:3:0"},"nodeType":"YulFunctionCall","src":"1856:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1850:5:0"},"nodeType":"YulFunctionCall","src":"1850:19:0"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1845:1:0"}]},{"nodeType":"YulAssignment","src":"1876:24:0","value":{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1891:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1896:2:0","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1887:3:0"},"nodeType":"YulFunctionCall","src":"1887:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1881:5:0"},"nodeType":"YulFunctionCall","src":"1881:19:0"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"1876:1:0"}]},{"nodeType":"YulAssignment","src":"1907:33:0","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1917:1:0","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1930:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1935:2:0","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1926:3:0"},"nodeType":"YulFunctionCall","src":"1926:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1920:5:0"},"nodeType":"YulFunctionCall","src":"1920:19:0"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1912:4:0"},"nodeType":"YulFunctionCall","src":"1912:28:0"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"1907:1:0"}]}]},"evmVersion":"london","externalReferences":[{"declaration":61,"isOffset":false,"isSlot":false,"src":"1845:1:0","valueSize":1},{"declaration":64,"isOffset":false,"isSlot":false,"src":"1876:1:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1860:3:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1891:3:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1930:3:0","valueSize":1},{"declaration":67,"isOffset":false,"isSlot":false,"src":"1907:1:0","valueSize":1}],"id":81,"nodeType":"InlineAssembly","src":"1828:118:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":84,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2042:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3237","id":83,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2042:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":90,"nodeType":"IfStatement","src":"2038:34:0","trueBody":{"id":89,"nodeType":"Block","src":"2050:22:0","statements":[{"expression":{"id":87,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2058:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3237","id":86,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2063:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2058:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":88,"nodeType":"ExpressionStatement","src":"2058:7:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":97,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":93,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2141:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3237","id":92,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2146:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2141:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":96,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":94,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2152:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3238","id":95,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"2152:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2141:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":112,"nodeType":"Block","src":"2201:46:0","statements":[{"expression":{"arguments":[{"id":106,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"2226:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":107,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2232:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":108,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"2235:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"2238:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":105,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"2216:9:0","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2216:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":111,"nodeType":"Return","src":"2209:31:0"}]},"id":113,"nodeType":"IfStatement","src":"2137:110:0","trueBody":{"id":104,"nodeType":"Block","src":"2161:34:0","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2185:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":99,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2177:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:0","typeDescriptions":{}}},"id":101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2177:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":102,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2176:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":103,"nodeType":"Return","src":"2169:19:0"}]}}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1279:267:0","text":" @dev Recover signer address from a message by using their signature\n @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n @param sig bytes signature, the signature is generated using web3.eth.sign()"},"id":115,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"1558:7:0","nodeType":"FunctionDefinition","parameters":{"id":56,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53,"mutability":"mutable","name":"hash","nameLocation":"1574:4:0","nodeType":"VariableDeclaration","scope":115,"src":"1566:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1566:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55,"mutability":"mutable","name":"sig","nameLocation":"1593:3:0","nodeType":"VariableDeclaration","scope":115,"src":"1580:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1565:32:0"},"returnParameters":{"id":59,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":115,"src":"1621:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57,"name":"address","nodeType":"ElementaryTypeName","src":"1621:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1620:9:0"},"scope":233,"src":"1549:702:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":140,"nodeType":"Block","src":"2351:183:0","statements":[{"assignments":[124],"declarations":[{"constant":false,"id":124,"mutability":"mutable","name":"encoded","nameLocation":"2375:7:0","nodeType":"VariableDeclaration","scope":140,"src":"2362:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":123,"name":"bytes","nodeType":"ElementaryTypeName","src":"2362:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":135,"initialValue":{"arguments":[{"id":127,"name":"EIP712DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"2403:21:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":128,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2432:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":3,"src":"2432:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":130,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2451:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":5,"src":"2451:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":132,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2473:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":7,"src":"2473:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2385:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2385:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2385:108:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2362:131:0"},{"expression":{"arguments":[{"id":137,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"2521:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":136,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2511:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2511:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":122,"id":139,"nodeType":"Return","src":"2504:25:0"}]},"functionSelector":"4bc39162","id":141,"implemented":true,"kind":"function","modifiers":[],"name":"GET_EIP712DOMAIN_PACKETHASH","nameLocation":"2264:27:0","nodeType":"FunctionDefinition","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"_input","nameLocation":"2313:6:0","nodeType":"VariableDeclaration","scope":141,"src":"2293:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain"},"typeName":{"id":117,"nodeType":"UserDefinedTypeName","pathNode":{"id":116,"name":"EIP712Domain","nodeType":"IdentifierPath","referencedDeclaration":8,"src":"2293:12:0"},"referencedDeclaration":8,"src":"2293:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_storage_ptr","typeString":"struct EIP712Domain"}},"visibility":"internal"}],"src":"2292:28:0"},"returnParameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":141,"src":"2342:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2342:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2341:9:0"},"scope":233,"src":"2255:279:0","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":164,"nodeType":"Block","src":"2622:151:0","statements":[{"assignments":[150],"declarations":[{"constant":false,"id":150,"mutability":"mutable","name":"encoded","nameLocation":"2646:7:0","nodeType":"VariableDeclaration","scope":164,"src":"2633:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":149,"name":"bytes","nodeType":"ElementaryTypeName","src":"2633:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":159,"initialValue":{"arguments":[{"id":153,"name":"PERSON_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"2674:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":154,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2697:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}},"id":155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":23,"src":"2697:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":156,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2716:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}},"id":157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"age","nodeType":"MemberAccess","referencedDeclaration":25,"src":"2716:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2656:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2656:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2656:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2633:99:0"},{"expression":{"arguments":[{"id":161,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"2760:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":160,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2750:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2750:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":148,"id":163,"nodeType":"Return","src":"2743:25:0"}]},"functionSelector":"8f4f876a","id":165,"implemented":true,"kind":"function","modifiers":[],"name":"GET_PERSON_PACKETHASH","nameLocation":"2547:21:0","nodeType":"FunctionDefinition","parameters":{"id":145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":144,"mutability":"mutable","name":"_input","nameLocation":"2584:6:0","nodeType":"VariableDeclaration","scope":165,"src":"2570:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person"},"typeName":{"id":143,"nodeType":"UserDefinedTypeName","pathNode":{"id":142,"name":"Person","nodeType":"IdentifierPath","referencedDeclaration":26,"src":"2570:6:0"},"referencedDeclaration":26,"src":"2570:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"}},"visibility":"internal"}],"src":"2569:22:0"},"returnParameters":{"id":148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":165,"src":"2613:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2613:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2612:9:0"},"scope":233,"src":"2538:235:0","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":231,"nodeType":"Block","src":"2865:682:0","statements":[{"assignments":[174],"declarations":[{"constant":false,"id":174,"mutability":"mutable","name":"packetHash","nameLocation":"2881:10:0","nodeType":"VariableDeclaration","scope":231,"src":"2873:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2873:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":179,"initialValue":{"arguments":[{"expression":{"id":176,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2916:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"message","nodeType":"MemberAccess","referencedDeclaration":20,"src":"2916:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}],"id":175,"name":"GET_PERSON_PACKETHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"2894:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Person_$26_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Person memory) pure returns (bytes32)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2894:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2873:58:0"},{"assignments":[181],"declarations":[{"constant":false,"id":181,"mutability":"mutable","name":"digest","nameLocation":"2947:6:0","nodeType":"VariableDeclaration","scope":231,"src":"2939:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2939:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":191,"initialValue":{"arguments":[{"arguments":[{"hexValue":"1901","id":185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3003:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":186,"name":"getDomainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50,"src":"3025:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3025:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":188,"name":"packetHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"3052:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2975:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2975:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2975:97:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":182,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2956:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2956:124:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2939:141:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":192,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3093:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3093:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030","id":194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000000"},"src":"3093:59:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":229,"nodeType":"Block","src":"3300:241:0","statements":[{"assignments":[208],"declarations":[{"constant":false,"id":208,"mutability":"mutable","name":"result","nameLocation":"3360:6:0","nodeType":"VariableDeclaration","scope":229,"src":"3353:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":207,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3353:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":218,"initialValue":{"arguments":[{"id":214,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"3417:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":215,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3425:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":15,"src":"3425:16:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":210,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3385:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3385:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":209,"name":"ERC1271Contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"3369:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1271Contract_$45_$","typeString":"type(contract ERC1271Contract)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3369:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC1271Contract_$45","typeString":"contract ERC1271Contract"}},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":44,"src":"3369:47:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes32,bytes memory) view external returns (bytes4)"}},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3369:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3353:89:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":220,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3460:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783136323662613765","id":221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3470:10:0","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"src":"3460:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4154555245","id":223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3482:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""},"value":"INVALID_SIGNATURE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""}],"id":219,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3452:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3452:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":225,"nodeType":"ExpressionStatement","src":"3452:50:0"},{"expression":{"expression":{"id":226,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3519:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3519:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":172,"id":228,"nodeType":"Return","src":"3512:20:0"}]},"id":230,"nodeType":"IfStatement","src":"3089:452:0","trueBody":{"id":206,"nodeType":"Block","src":"3154:140:0","statements":[{"assignments":[197],"declarations":[{"constant":false,"id":197,"mutability":"mutable","name":"recoveredSigner","nameLocation":"3172:15:0","nodeType":"VariableDeclaration","scope":206,"src":"3164:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":196,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":203,"initialValue":{"arguments":[{"id":199,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"3209:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":200,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3227:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":15,"src":"3227:16:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":198,"name":"recover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"3190:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3190:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3164:89:0"},{"expression":{"id":204,"name":"recoveredSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"3270:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":172,"id":205,"nodeType":"Return","src":"3263:22:0"}]}}]},"functionSelector":"ea23cf6e","id":232,"implemented":true,"kind":"function","modifiers":[],"name":"verifySignedPerson","nameLocation":"2788:18:0","nodeType":"FunctionDefinition","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":168,"mutability":"mutable","name":"_input","nameLocation":"2827:6:0","nodeType":"VariableDeclaration","scope":232,"src":"2807:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson"},"typeName":{"id":167,"nodeType":"UserDefinedTypeName","pathNode":{"id":166,"name":"signedPerson","nodeType":"IdentifierPath","referencedDeclaration":21,"src":"2807:12:0"},"referencedDeclaration":21,"src":"2807:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_storage_ptr","typeString":"struct signedPerson"}},"visibility":"internal"}],"src":"2806:28:0"},"returnParameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":232,"src":"2856:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"2856:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2855:9:0"},"scope":233,"src":"2779:768:0","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":234,"src":"1175:2378:0","usedErrors":[]}],"src":"0:3555:0"},"id":0},"contracts/MockEIP712Decoder.sol":{"ast":{"absolutePath":"contracts/MockEIP712Decoder.sol","exportedSymbols":{"EIP712DOMAIN_TYPEHASH":[13],"EIP712Decoder":[233],"EIP712Domain":[8],"ERC1271Contract":[45],"MockEIP712Decoder":[292],"PERSON_TYPEHASH":[31],"Person":[26],"signedPerson":[21]},"id":293,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":235,"literals":["solidity","^","0.8",".13"],"nodeType":"PragmaDirective","src":"32:24:1"},{"absolutePath":"contracts/EIP712Decoder.sol","file":"./EIP712Decoder.sol","id":236,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":293,"sourceUnit":234,"src":"58:29:1","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":237,"name":"EIP712Decoder","nodeType":"IdentifierPath","referencedDeclaration":233,"src":"119:13:1"},"id":238,"nodeType":"InheritanceSpecifier","src":"119:13:1"}],"canonicalName":"MockEIP712Decoder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":292,"linearizedBaseContracts":[292,233],"name":"MockEIP712Decoder","nameLocation":"98:17:1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":240,"mutability":"mutable","name":"domainHash","nameLocation":"147:10:1","nodeType":"VariableDeclaration","scope":292,"src":"139:18:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":281,"nodeType":"Block","src":"192:272:1","statements":[{"expression":{"id":279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":245,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"202:10:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":249,"name":"EIP712DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"249:21:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"4d6f636b4549503731324465636f646572","id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300:19:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_a65f75c936afe6c491d5e9cb93ab6ad919c55c9fa1339716b8ab51aa1c9d7fec","typeString":"literal_string \"MockEIP712Decoder\""},"value":"MockEIP712Decoder"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a65f75c936afe6c491d5e9cb93ab6ad919c55c9fa1339716b8ab51aa1c9d7fec","typeString":"literal_string \"MockEIP712Decoder\""}],"id":252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"294:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":251,"name":"bytes","nodeType":"ElementaryTypeName","src":"294:5:1","typeDescriptions":{}}},"id":254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"294:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":250,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"284:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"284:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"31","id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"351:3:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"345:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":257,"name":"bytes","nodeType":"ElementaryTypeName","src":"345:5:1","typeDescriptions":{}}},"id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"345:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":256,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"335:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"335:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":264,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"378:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"370:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":262,"name":"uint256","nodeType":"ElementaryTypeName","src":"370:7:1","typeDescriptions":{}}},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"370:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":268,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"408:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_MockEIP712Decoder_$292","typeString":"contract MockEIP712Decoder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockEIP712Decoder_$292","typeString":"contract MockEIP712Decoder"}],"id":267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"400:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":266,"name":"address","nodeType":"ElementaryTypeName","src":"400:7:1","typeDescriptions":{}}},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"400:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"30","id":274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"443:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"435:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":272,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:1","typeDescriptions":{}}},"id":275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"435:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"427:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"427:7:1","typeDescriptions":{}}},"id":276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"427:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"225:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"225:10:1","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"225:231:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":246,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"215:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"215:242:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"202:255:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":280,"nodeType":"ExpressionStatement","src":"202:255:1"}]},"id":282,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":242,"mutability":"mutable","name":"chainId","nameLocation":"183:7:1","nodeType":"VariableDeclaration","scope":282,"src":"175:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":241,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"174:17:1"},"returnParameters":{"id":244,"nodeType":"ParameterList","parameters":[],"src":"192:0:1"},"scope":292,"src":"163:301:1","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[50],"body":{"id":290,"nodeType":"Block","src":"535:34:1","statements":[{"expression":{"id":288,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"552:10:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":287,"id":289,"nodeType":"Return","src":"545:17:1"}]},"functionSelector":"83ebb771","id":291,"implemented":true,"kind":"function","modifiers":[],"name":"getDomainHash","nameLocation":"479:13:1","nodeType":"FunctionDefinition","overrides":{"id":284,"nodeType":"OverrideSpecifier","overrides":[],"src":"508:8:1"},"parameters":{"id":283,"nodeType":"ParameterList","parameters":[],"src":"493:2:1"},"returnParameters":{"id":287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":291,"src":"526:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"526:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"525:9:1"},"scope":292,"src":"470:99:1","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":293,"src":"89:482:1","usedErrors":[]}],"src":"32:540:1"},"id":1}},"contracts":{"contracts/EIP712Decoder.sol":{"EIP712Decoder":{"abi":[{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct EIP712Domain","name":"_input","type":"tuple"}],"name":"GET_EIP712DOMAIN_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"_input","type":"tuple"}],"name":"GET_PERSON_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"message","type":"tuple"}],"internalType":"struct signedPerson","name":"_input","type":"tuple"}],"name":"verifySignedPerson","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"GET_EIP712DOMAIN_PACKETHASH((string,string,uint256))":"4bc39162","GET_PERSON_PACKETHASH((string,uint256))":"8f4f876a","getDomainHash()":"83ebb771","verifySignedPerson((bytes,address,(string,uint256)))":"ea23cf6e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct EIP712Domain\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_EIP712DOMAIN_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_PERSON_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"message\",\"type\":\"tuple\"}],\"internalType\":\"struct signedPerson\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"verifySignedPerson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EIP712Decoder.sol\":\"EIP712Decoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]}},\"version\":1}"},"ERC1271Contract":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided hash\",\"params\":{\"_hash\":\"Hash of the data to be signed\",\"_signature\":\"Signature byte array associated with _hash MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EIP712Decoder.sol\":\"ERC1271Contract\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]}},\"version\":1}"}},"contracts/MockEIP712Decoder.sol":{"MockEIP712Decoder":{"abi":[{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct EIP712Domain","name":"_input","type":"tuple"}],"name":"GET_EIP712DOMAIN_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"_input","type":"tuple"}],"name":"GET_PERSON_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"message","type":"tuple"}],"internalType":"struct signedPerson","name":"_input","type":"tuple"}],"name":"verifySignedPerson","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_282":{"entryPoint":null,"id":282,"parameterSlots":1,"returnSlots":0},"abi_decode_t_uint256_fromMemory":{"entryPoint":315,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":338,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":484,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":398,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":415,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed":{"entryPoint":501,"id":null,"parameterSlots":7,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":464,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":388,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":432,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":279,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":274,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":289,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2518:2","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:2","statements":[{"nodeType":"YulAssignment","src":"57:19:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:2","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:2"},"nodeType":"YulFunctionCall","src":"67:9:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:2"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:2","type":""}],"src":"7:75:2"},{"body":{"nodeType":"YulBlock","src":"177:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:2"},"nodeType":"YulFunctionCall","src":"187:12:2"},"nodeType":"YulExpressionStatement","src":"187:12:2"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:2"},{"body":{"nodeType":"YulBlock","src":"300:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:2"},"nodeType":"YulFunctionCall","src":"310:12:2"},"nodeType":"YulExpressionStatement","src":"310:12:2"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:2"},{"body":{"nodeType":"YulBlock","src":"379:32:2","statements":[{"nodeType":"YulAssignment","src":"389:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"400:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:2"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:2","type":""}],"src":"334:77:2"},{"body":{"nodeType":"YulBlock","src":"460:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"517:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"529:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:2"},"nodeType":"YulFunctionCall","src":"519:12:2"},"nodeType":"YulExpressionStatement","src":"519:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"483:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"508:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"490:17:2"},"nodeType":"YulFunctionCall","src":"490:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"480:2:2"},"nodeType":"YulFunctionCall","src":"480:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"473:6:2"},"nodeType":"YulFunctionCall","src":"473:43:2"},"nodeType":"YulIf","src":"470:63:2"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"453:5:2","type":""}],"src":"417:122:2"},{"body":{"nodeType":"YulBlock","src":"608:80:2","statements":[{"nodeType":"YulAssignment","src":"618:22:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"633:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"627:5:2"},"nodeType":"YulFunctionCall","src":"627:13:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"618:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"676:5:2"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"649:26:2"},"nodeType":"YulFunctionCall","src":"649:33:2"},"nodeType":"YulExpressionStatement","src":"649:33:2"}]},"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"586:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"594:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"602:5:2","type":""}],"src":"545:143:2"},{"body":{"nodeType":"YulBlock","src":"771:274:2","statements":[{"body":{"nodeType":"YulBlock","src":"817:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"819:77:2"},"nodeType":"YulFunctionCall","src":"819:79:2"},"nodeType":"YulExpressionStatement","src":"819:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"792:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"801:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"788:3:2"},"nodeType":"YulFunctionCall","src":"788:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"813:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"784:3:2"},"nodeType":"YulFunctionCall","src":"784:32:2"},"nodeType":"YulIf","src":"781:119:2"},{"nodeType":"YulBlock","src":"910:128:2","statements":[{"nodeType":"YulVariableDeclaration","src":"925:15:2","value":{"kind":"number","nodeType":"YulLiteral","src":"939:1:2","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"929:6:2","type":""}]},{"nodeType":"YulAssignment","src":"954:74:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1000:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"1011:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"996:3:2"},"nodeType":"YulFunctionCall","src":"996:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1020:7:2"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulIdentifier","src":"964:31:2"},"nodeType":"YulFunctionCall","src":"964:64:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"954:6:2"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"741:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"752:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"764:6:2","type":""}],"src":"694:351:2"},{"body":{"nodeType":"YulBlock","src":"1096:32:2","statements":[{"nodeType":"YulAssignment","src":"1106:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"1117:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1106:7:2"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1078:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1088:7:2","type":""}],"src":"1051:77:2"},{"body":{"nodeType":"YulBlock","src":"1199:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1216:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1239:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"1221:17:2"},"nodeType":"YulFunctionCall","src":"1221:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1209:6:2"},"nodeType":"YulFunctionCall","src":"1209:37:2"},"nodeType":"YulExpressionStatement","src":"1209:37:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1187:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1194:3:2","type":""}],"src":"1134:118:2"},{"body":{"nodeType":"YulBlock","src":"1323:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1340:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1363:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1345:17:2"},"nodeType":"YulFunctionCall","src":"1345:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:2"},"nodeType":"YulFunctionCall","src":"1333:37:2"},"nodeType":"YulExpressionStatement","src":"1333:37:2"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1311:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1318:3:2","type":""}],"src":"1258:118:2"},{"body":{"nodeType":"YulBlock","src":"1427:81:2","statements":[{"nodeType":"YulAssignment","src":"1437:65:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1452:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"1459:42:2","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1448:3:2"},"nodeType":"YulFunctionCall","src":"1448:54:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1437:7:2"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1409:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1419:7:2","type":""}],"src":"1382:126:2"},{"body":{"nodeType":"YulBlock","src":"1559:51:2","statements":[{"nodeType":"YulAssignment","src":"1569:35:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1598:5:2"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"1580:17:2"},"nodeType":"YulFunctionCall","src":"1580:24:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1569:7:2"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1541:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1551:7:2","type":""}],"src":"1514:96:2"},{"body":{"nodeType":"YulBlock","src":"1681:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1698:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1721:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1703:17:2"},"nodeType":"YulFunctionCall","src":"1703:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1691:6:2"},"nodeType":"YulFunctionCall","src":"1691:37:2"},"nodeType":"YulExpressionStatement","src":"1691:37:2"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1669:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1676:3:2","type":""}],"src":"1616:118:2"},{"body":{"nodeType":"YulBlock","src":"1978:537:2","statements":[{"nodeType":"YulAssignment","src":"1988:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2011:3:2","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1996:3:2"},"nodeType":"YulFunctionCall","src":"1996:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1988:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2069:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2082:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2093:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2078:3:2"},"nodeType":"YulFunctionCall","src":"2078:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2025:43:2"},"nodeType":"YulFunctionCall","src":"2025:71:2"},"nodeType":"YulExpressionStatement","src":"2025:71:2"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2150:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2163:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2174:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:2"},"nodeType":"YulFunctionCall","src":"2159:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2106:43:2"},"nodeType":"YulFunctionCall","src":"2106:72:2"},"nodeType":"YulExpressionStatement","src":"2106:72:2"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2232:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2245:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2256:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2241:3:2"},"nodeType":"YulFunctionCall","src":"2241:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2188:43:2"},"nodeType":"YulFunctionCall","src":"2188:72:2"},"nodeType":"YulExpressionStatement","src":"2188:72:2"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2314:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2338:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2323:3:2"},"nodeType":"YulFunctionCall","src":"2323:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2270:43:2"},"nodeType":"YulFunctionCall","src":"2270:72:2"},"nodeType":"YulExpressionStatement","src":"2270:72:2"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2396:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2409:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2420:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2405:3:2"},"nodeType":"YulFunctionCall","src":"2405:19:2"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"2352:43:2"},"nodeType":"YulFunctionCall","src":"2352:73:2"},"nodeType":"YulExpressionStatement","src":"2352:73:2"},{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"2479:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2492:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2503:3:2","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2488:3:2"},"nodeType":"YulFunctionCall","src":"2488:19:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2435:43:2"},"nodeType":"YulFunctionCall","src":"2435:73:2"},"nodeType":"YulExpressionStatement","src":"2435:73:2"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1910:9:2","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1922:6:2","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1930:6:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1938:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1946:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1954:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1962:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1973:4:2","type":""}],"src":"1740:775:2"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 192)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_address_to_t_address_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value5, add(headStart, 160))\n\n }\n\n}\n","id":2,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200107038038062001070833981810160405281019062000037919062000152565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e6040518060400160405280601181526020017f4d6f636b4549503731324465636f646572000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012083306000801b604051602001620000ef96959493929190620001f5565b604051602081830303815290604052805190602001206000819055505062000262565b600080fd5b6000819050919050565b6200012c8162000117565b81146200013857600080fd5b50565b6000815190506200014c8162000121565b92915050565b6000602082840312156200016b576200016a62000112565b5b60006200017b848285016200013b565b91505092915050565b6000819050919050565b620001998162000184565b82525050565b620001aa8162000117565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001dd82620001b0565b9050919050565b620001ef81620001d0565b82525050565b600060c0820190506200020c60008301896200018e565b6200021b60208301886200018e565b6200022a60408301876200018e565b6200023960608301866200019f565b620002486080830185620001e4565b6200025760a08301846200018e565b979650505050505050565b610dfe80620002726000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220b813aca3be4d82a116ff8bb776d30aec88874ca56c30845170089417c231849664736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1070 CODESIZE SUB DUP1 PUSH3 0x1070 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x152 JUMP JUMPDEST PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B4549503731324465636F646572000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 ADDRESS PUSH1 0x0 DUP1 SHL PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0xEF SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x1F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH3 0x262 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x12C DUP2 PUSH3 0x117 JUMP JUMPDEST DUP2 EQ PUSH3 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x14C DUP2 PUSH3 0x121 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x16B JUMPI PUSH3 0x16A PUSH3 0x112 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x17B DUP5 DUP3 DUP6 ADD PUSH3 0x13B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x199 DUP2 PUSH3 0x184 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x1AA DUP2 PUSH3 0x117 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1DD DUP3 PUSH3 0x1B0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1EF DUP2 PUSH3 0x1D0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH3 0x20C PUSH1 0x0 DUP4 ADD DUP10 PUSH3 0x18E JUMP JUMPDEST PUSH3 0x21B PUSH1 0x20 DUP4 ADD DUP9 PUSH3 0x18E JUMP JUMPDEST PUSH3 0x22A PUSH1 0x40 DUP4 ADD DUP8 PUSH3 0x18E JUMP JUMPDEST PUSH3 0x239 PUSH1 0x60 DUP4 ADD DUP7 PUSH3 0x19F JUMP JUMPDEST PUSH3 0x248 PUSH1 0x80 DUP4 ADD DUP6 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x257 PUSH1 0xA0 DUP4 ADD DUP5 PUSH3 0x18E JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDFE DUP1 PUSH3 0x272 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BC39162 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x83EBB771 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x8F4F876A EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA23CF6E EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x4B1B66E1DAD0EB5853B62DD86EBAC7B66C400129B72DA1FF5FDA43303A4F44DB DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x16F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EC PUSH2 0x166 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FE SWAP3 SWAP2 SWAP1 PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26B JUMPI PUSH1 0x0 PUSH2 0x25E DUP3 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x36B JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP PUSH2 0x366 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E DUP4 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B0 SWAP3 SWAP2 SWAP1 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0xC68 JUMP JUMPDEST SWAP1 POP PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x352 SWAP1 PUSH2 0xCE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x41 DUP6 MLOAD EQ PUSH2 0x386 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH1 0x1B DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x1B DUP2 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0xD3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1B DUP2 PUSH1 0xFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI POP PUSH1 0x1C DUP2 PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x1 DUP7 DUP3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x406 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD83 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x428 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4A0 DUP3 PUSH2 0x457 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4BF JUMPI PUSH2 0x4BE PUSH2 0x468 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D2 PUSH2 0x43E JUMP JUMPDEST SWAP1 POP PUSH2 0x4DE DUP3 DUP3 PUSH2 0x497 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x516 DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x545 PUSH2 0x540 DUP5 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x56C DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x599 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x532 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5D2 DUP2 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5ED PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x5F8 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x618 JUMPI PUSH2 0x617 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x624 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x648 JUMPI PUSH2 0x647 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x654 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x668 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x68A JUMPI PUSH2 0x689 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A7 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x6B4 DUP5 DUP3 DUP6 ADD PUSH2 0x5D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D0 DUP2 PUSH2 0x6BD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x711 PUSH1 0x40 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x731 JUMPI PUSH2 0x730 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x73D DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x751 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x773 JUMPI PUSH2 0x772 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x79D DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x7CA DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EA PUSH2 0x7E5 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x811 DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x82E JUMPI PUSH2 0x82D PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x83E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x872 DUP3 PUSH2 0x847 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x882 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP2 EQ PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x89F DUP2 PUSH2 0x879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x8C5 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8E5 JUMPI PUSH2 0x8E4 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x8F1 DUP5 DUP3 DUP6 ADD PUSH2 0x819 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x905 DUP5 DUP3 DUP6 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x935 DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x957 JUMPI PUSH2 0x956 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x974 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x981 DUP5 DUP3 DUP6 ADD PUSH2 0x8A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x98A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0E DUP3 PUSH2 0x9B4 JUMP JUMPDEST PUSH2 0xA18 DUP2 DUP6 PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH2 0xA28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xA60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA72 DUP2 DUP7 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA86 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xA95 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAB3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAC5 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xAD4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1D PUSH1 0x2 DUP4 PUSH2 0xADC JUMP JUMPDEST SWAP2 POP PUSH2 0xB28 DUP3 PUSH2 0xAE7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB4E PUSH2 0xB49 DUP3 PUSH2 0x6BD JUMP JUMPDEST PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5F DUP3 PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6B DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xB7B DUP3 DUP5 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB8B JUMP JUMPDEST PUSH2 0xBBC DUP2 DUP6 PUSH2 0xB96 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xBD5 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xBF5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC07 DUP2 DUP5 PUSH2 0xBA7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC45 DUP2 PUSH2 0xC10 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC62 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7E JUMPI PUSH2 0xC7D PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8C DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCB PUSH1 0x11 DUP4 PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP PUSH2 0xCD6 DUP3 PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCFA DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD48 DUP3 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0xD01 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xD69 JUMPI PUSH2 0xD68 PUSH2 0xD0E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xD98 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDA5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xD74 JUMP JUMPDEST PUSH2 0xDB2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDBF PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 SGT 0xAC LOG3 0xBE 0x4D DUP3 LOG1 AND SELFDESTRUCT DUP12 0xB7 PUSH23 0xD30AEC88874CA56C30845170089417C231849664736F6C PUSH4 0x4300080D STOP CALLER ","sourceMap":"89:482:1:-:0;;;163:301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;177:69:0;294:26:1;;;;;;;;;;;;;;;;;284:37;;;;;;345:10;;;;;;;;;;;;;;;;;335:21;;;;;;378:7;408:4;443:1;427:19;;225:231;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;215:242;;;;;;202:10;:255;;;;163:301;89:482;;88:117:2;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:77::-;1088:7;1117:5;1106:16;;1051:77;;;:::o;1134:118::-;1221:24;1239:5;1221:24;:::i;:::-;1216:3;1209:37;1134:118;;:::o;1258:::-;1345:24;1363:5;1345:24;:::i;:::-;1340:3;1333:37;1258:118;;:::o;1382:126::-;1419:7;1459:42;1452:5;1448:54;1437:65;;1382:126;;;:::o;1514:96::-;1551:7;1580:24;1598:5;1580:24;:::i;:::-;1569:35;;1514:96;;;:::o;1616:118::-;1703:24;1721:5;1703:24;:::i;:::-;1698:3;1691:37;1616:118;;:::o;1740:775::-;1973:4;2011:3;2000:9;1996:19;1988:27;;2025:71;2093:1;2082:9;2078:17;2069:6;2025:71;:::i;:::-;2106:72;2174:2;2163:9;2159:18;2150:6;2106:72;:::i;:::-;2188;2256:2;2245:9;2241:18;2232:6;2188:72;:::i;:::-;2270;2338:2;2327:9;2323:18;2314:6;2270:72;:::i;:::-;2352:73;2420:3;2409:9;2405:19;2396:6;2352:73;:::i;:::-;2435;2503:3;2492:9;2488:19;2479:6;2435:73;:::i;:::-;1740:775;;;;;;;;;:::o;89:482:1:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GET_EIP712DOMAIN_PACKETHASH_141":{"entryPoint":255,"id":141,"parameterSlots":1,"returnSlots":1},"@GET_PERSON_PACKETHASH_165":{"entryPoint":367,"id":165,"parameterSlots":1,"returnSlots":1},"@getDomainHash_291":{"entryPoint":358,"id":291,"parameterSlots":0,"returnSlots":1},"@recover_115":{"entryPoint":875,"id":115,"parameterSlots":2,"returnSlots":1},"@verifySignedPerson_232":{"entryPoint":464,"id":232,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":2007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":1330,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2192,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4_fromMemory":{"entryPoint":3155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":1396,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr":{"entryPoint":1496,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Person_$26_memory_ptr":{"entryPoint":1777,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_signedPerson_$21_memory_ptr":{"entryPoint":2213,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":3176,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr":{"entryPoint":1652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Person_$26_memory_ptr":{"entryPoint":1885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr":{"entryPoint":2369,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2442,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":1735,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":2877,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2983,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2563,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2832,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack":{"entryPoint":3262,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2620,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":3444,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":2900,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":1750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3040,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2635,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2718,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":3459,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3297,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1224,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1086,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1958,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":1266,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2955,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2484,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2495,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2780,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint8":{"entryPoint":3389,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2151,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":1725,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3088,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2119,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":1442,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":3329,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory":{"entryPoint":1315,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":2512,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1175,"id":null,"parameterSlots":2,"returnSlots":0},"leftAlign_t_bytes32":{"entryPoint":2867,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3342,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1128,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1256,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":1106,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":1251,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1261,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1101,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1096,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1111,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541":{"entryPoint":2791,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88":{"entryPoint":3221,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2169,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3132,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1452,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:18257:2","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:2","statements":[{"nodeType":"YulAssignment","src":"57:19:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:2","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:2"},"nodeType":"YulFunctionCall","src":"67:9:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:2"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:2","type":""}],"src":"7:75:2"},{"body":{"nodeType":"YulBlock","src":"177:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:2"},"nodeType":"YulFunctionCall","src":"187:12:2"},"nodeType":"YulExpressionStatement","src":"187:12:2"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:2"},{"body":{"nodeType":"YulBlock","src":"300:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:2"},"nodeType":"YulFunctionCall","src":"310:12:2"},"nodeType":"YulExpressionStatement","src":"310:12:2"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:2"},{"body":{"nodeType":"YulBlock","src":"423:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"443:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"433:6:2"},"nodeType":"YulFunctionCall","src":"433:12:2"},"nodeType":"YulExpressionStatement","src":"433:12:2"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulFunctionDefinition","src":"334:117:2"},{"body":{"nodeType":"YulBlock","src":"505:54:2","statements":[{"nodeType":"YulAssignment","src":"515:38:2","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"533:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"540:2:2","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"529:3:2"},"nodeType":"YulFunctionCall","src":"529:14:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"549:2:2","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"545:3:2"},"nodeType":"YulFunctionCall","src":"545:7:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"525:3:2"},"nodeType":"YulFunctionCall","src":"525:28:2"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"515:6:2"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"488:5:2","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"498:6:2","type":""}],"src":"457:102:2"},{"body":{"nodeType":"YulBlock","src":"593:152:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"610:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"613:77:2","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"603:6:2"},"nodeType":"YulFunctionCall","src":"603:88:2"},"nodeType":"YulExpressionStatement","src":"603:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"707:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"710:4:2","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"700:6:2"},"nodeType":"YulFunctionCall","src":"700:15:2"},"nodeType":"YulExpressionStatement","src":"700:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:2"},"nodeType":"YulFunctionCall","src":"724:15:2"},"nodeType":"YulExpressionStatement","src":"724:15:2"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"565:180:2"},{"body":{"nodeType":"YulBlock","src":"794:238:2","statements":[{"nodeType":"YulVariableDeclaration","src":"804:58:2","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"826:6:2"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"856:4:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"834:21:2"},"nodeType":"YulFunctionCall","src":"834:27:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:2"},"nodeType":"YulFunctionCall","src":"822:40:2"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"808:10:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"973:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"975:16:2"},"nodeType":"YulFunctionCall","src":"975:18:2"},"nodeType":"YulExpressionStatement","src":"975:18:2"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"916:10:2"},{"kind":"number","nodeType":"YulLiteral","src":"928:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"913:2:2"},"nodeType":"YulFunctionCall","src":"913:34:2"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"952:10:2"},{"name":"memPtr","nodeType":"YulIdentifier","src":"964:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"949:2:2"},"nodeType":"YulFunctionCall","src":"949:22:2"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"910:2:2"},"nodeType":"YulFunctionCall","src":"910:62:2"},"nodeType":"YulIf","src":"907:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1011:2:2","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1015:10:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1004:6:2"},"nodeType":"YulFunctionCall","src":"1004:22:2"},"nodeType":"YulExpressionStatement","src":"1004:22:2"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"780:6:2","type":""},{"name":"size","nodeType":"YulTypedName","src":"788:4:2","type":""}],"src":"751:281:2"},{"body":{"nodeType":"YulBlock","src":"1079:88:2","statements":[{"nodeType":"YulAssignment","src":"1089:30:2","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1099:18:2"},"nodeType":"YulFunctionCall","src":"1099:20:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1089:6:2"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1148:6:2"},{"name":"size","nodeType":"YulIdentifier","src":"1156:4:2"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1128:19:2"},"nodeType":"YulFunctionCall","src":"1128:33:2"},"nodeType":"YulExpressionStatement","src":"1128:33:2"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1063:4:2","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1072:6:2","type":""}],"src":"1038:129:2"},{"body":{"nodeType":"YulBlock","src":"1262:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1279:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1282:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1272:6:2"},"nodeType":"YulFunctionCall","src":"1272:12:2"},"nodeType":"YulExpressionStatement","src":"1272:12:2"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulFunctionDefinition","src":"1173:117:2"},{"body":{"nodeType":"YulBlock","src":"1385:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1402:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1405:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1395:6:2"},"nodeType":"YulFunctionCall","src":"1395:12:2"},"nodeType":"YulExpressionStatement","src":"1395:12:2"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"1296:117:2"},{"body":{"nodeType":"YulBlock","src":"1508:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1525:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1528:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1518:6:2"},"nodeType":"YulFunctionCall","src":"1518:12:2"},"nodeType":"YulExpressionStatement","src":"1518:12:2"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulFunctionDefinition","src":"1419:117:2"},{"body":{"nodeType":"YulBlock","src":"1609:241:2","statements":[{"body":{"nodeType":"YulBlock","src":"1714:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1716:16:2"},"nodeType":"YulFunctionCall","src":"1716:18:2"},"nodeType":"YulExpressionStatement","src":"1716:18:2"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1686:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"1694:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1683:2:2"},"nodeType":"YulFunctionCall","src":"1683:30:2"},"nodeType":"YulIf","src":"1680:56:2"},{"nodeType":"YulAssignment","src":"1746:37:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1776:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"1754:21:2"},"nodeType":"YulFunctionCall","src":"1754:29:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1746:4:2"}]},{"nodeType":"YulAssignment","src":"1820:23:2","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"1832:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"1838:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1828:3:2"},"nodeType":"YulFunctionCall","src":"1828:15:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1820:4:2"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"1593:6:2","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"1604:4:2","type":""}],"src":"1542:308:2"},{"body":{"nodeType":"YulBlock","src":"1907:103:2","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1930:3:2"},{"name":"src","nodeType":"YulIdentifier","src":"1935:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"1940:6:2"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1917:12:2"},"nodeType":"YulFunctionCall","src":"1917:30:2"},"nodeType":"YulExpressionStatement","src":"1917:30:2"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1988:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"1993:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1984:3:2"},"nodeType":"YulFunctionCall","src":"1984:16:2"},{"kind":"number","nodeType":"YulLiteral","src":"2002:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1977:6:2"},"nodeType":"YulFunctionCall","src":"1977:27:2"},"nodeType":"YulExpressionStatement","src":"1977:27:2"}]},"name":"copy_calldata_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1889:3:2","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1894:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"1899:6:2","type":""}],"src":"1856:154:2"},{"body":{"nodeType":"YulBlock","src":"2100:328:2","statements":[{"nodeType":"YulAssignment","src":"2110:75:2","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2177:6:2"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nodeType":"YulIdentifier","src":"2135:41:2"},"nodeType":"YulFunctionCall","src":"2135:49:2"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2119:15:2"},"nodeType":"YulFunctionCall","src":"2119:66:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2110:5:2"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2201:5:2"},{"name":"length","nodeType":"YulIdentifier","src":"2208:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2194:6:2"},"nodeType":"YulFunctionCall","src":"2194:21:2"},"nodeType":"YulExpressionStatement","src":"2194:21:2"},{"nodeType":"YulVariableDeclaration","src":"2224:27:2","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2239:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"2246:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2235:3:2"},"nodeType":"YulFunctionCall","src":"2235:16:2"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2228:3:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"2289:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"2291:77:2"},"nodeType":"YulFunctionCall","src":"2291:79:2"},"nodeType":"YulExpressionStatement","src":"2291:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2270:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"2275:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2266:3:2"},"nodeType":"YulFunctionCall","src":"2266:16:2"},{"name":"end","nodeType":"YulIdentifier","src":"2284:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2263:2:2"},"nodeType":"YulFunctionCall","src":"2263:25:2"},"nodeType":"YulIf","src":"2260:112:2"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2405:3:2"},{"name":"dst","nodeType":"YulIdentifier","src":"2410:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"2415:6:2"}],"functionName":{"name":"copy_calldata_to_memory","nodeType":"YulIdentifier","src":"2381:23:2"},"nodeType":"YulFunctionCall","src":"2381:41:2"},"nodeType":"YulExpressionStatement","src":"2381:41:2"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2073:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"2078:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"2086:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2094:5:2","type":""}],"src":"2016:412:2"},{"body":{"nodeType":"YulBlock","src":"2510:278:2","statements":[{"body":{"nodeType":"YulBlock","src":"2559:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"2561:77:2"},"nodeType":"YulFunctionCall","src":"2561:79:2"},"nodeType":"YulExpressionStatement","src":"2561:79:2"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2538:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2546:4:2","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2534:3:2"},"nodeType":"YulFunctionCall","src":"2534:17:2"},{"name":"end","nodeType":"YulIdentifier","src":"2553:3:2"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2530:3:2"},"nodeType":"YulFunctionCall","src":"2530:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2523:6:2"},"nodeType":"YulFunctionCall","src":"2523:35:2"},"nodeType":"YulIf","src":"2520:122:2"},{"nodeType":"YulVariableDeclaration","src":"2651:34:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2678:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2665:12:2"},"nodeType":"YulFunctionCall","src":"2665:20:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2655:6:2","type":""}]},{"nodeType":"YulAssignment","src":"2694:88:2","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2755:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2763:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2751:3:2"},"nodeType":"YulFunctionCall","src":"2751:17:2"},{"name":"length","nodeType":"YulIdentifier","src":"2770:6:2"},{"name":"end","nodeType":"YulIdentifier","src":"2778:3:2"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"2703:47:2"},"nodeType":"YulFunctionCall","src":"2703:79:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2694:5:2"}]}]},"name":"abi_decode_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2488:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"2496:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2504:5:2","type":""}],"src":"2448:340:2"},{"body":{"nodeType":"YulBlock","src":"2839:32:2","statements":[{"nodeType":"YulAssignment","src":"2849:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"2860:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2849:7:2"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2821:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2831:7:2","type":""}],"src":"2794:77:2"},{"body":{"nodeType":"YulBlock","src":"2920:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"2977:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2986:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2989:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2979:6:2"},"nodeType":"YulFunctionCall","src":"2979:12:2"},"nodeType":"YulExpressionStatement","src":"2979:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2943:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2968:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"2950:17:2"},"nodeType":"YulFunctionCall","src":"2950:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2940:2:2"},"nodeType":"YulFunctionCall","src":"2940:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2933:6:2"},"nodeType":"YulFunctionCall","src":"2933:43:2"},"nodeType":"YulIf","src":"2930:63:2"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2913:5:2","type":""}],"src":"2877:122:2"},{"body":{"nodeType":"YulBlock","src":"3057:87:2","statements":[{"nodeType":"YulAssignment","src":"3067:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3089:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3076:12:2"},"nodeType":"YulFunctionCall","src":"3076:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3067:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3132:5:2"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"3105:26:2"},"nodeType":"YulFunctionCall","src":"3105:33:2"},"nodeType":"YulExpressionStatement","src":"3105:33:2"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3035:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"3043:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3051:5:2","type":""}],"src":"3005:139:2"},{"body":{"nodeType":"YulBlock","src":"3259:1001:2","statements":[{"body":{"nodeType":"YulBlock","src":"3303:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"3305:77:2"},"nodeType":"YulFunctionCall","src":"3305:79:2"},"nodeType":"YulExpressionStatement","src":"3305:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"3280:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"3285:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3276:3:2"},"nodeType":"YulFunctionCall","src":"3276:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"3297:4:2","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3272:3:2"},"nodeType":"YulFunctionCall","src":"3272:30:2"},"nodeType":"YulIf","src":"3269:117:2"},{"nodeType":"YulAssignment","src":"3395:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3420:4:2","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3404:15:2"},"nodeType":"YulFunctionCall","src":"3404:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3395:5:2"}]},{"nodeType":"YulBlock","src":"3435:320:2","statements":[{"nodeType":"YulVariableDeclaration","src":"3470:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3501:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3512:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3497:3:2"},"nodeType":"YulFunctionCall","src":"3497:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3484:12:2"},"nodeType":"YulFunctionCall","src":"3484:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3474:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3562:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"3564:77:2"},"nodeType":"YulFunctionCall","src":"3564:79:2"},"nodeType":"YulExpressionStatement","src":"3564:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3534:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3542:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3531:2:2"},"nodeType":"YulFunctionCall","src":"3531:30:2"},"nodeType":"YulIf","src":"3528:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3670:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"3677:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3666:3:2"},"nodeType":"YulFunctionCall","src":"3666:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3719:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"3730:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3715:3:2"},"nodeType":"YulFunctionCall","src":"3715:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"3739:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"3684:30:2"},"nodeType":"YulFunctionCall","src":"3684:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3659:6:2"},"nodeType":"YulFunctionCall","src":"3659:85:2"},"nodeType":"YulExpressionStatement","src":"3659:85:2"}]},{"nodeType":"YulBlock","src":"3765:324:2","statements":[{"nodeType":"YulVariableDeclaration","src":"3803:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3834:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3845:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3830:3:2"},"nodeType":"YulFunctionCall","src":"3830:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3817:12:2"},"nodeType":"YulFunctionCall","src":"3817:32:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3807:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3896:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"3898:77:2"},"nodeType":"YulFunctionCall","src":"3898:79:2"},"nodeType":"YulExpressionStatement","src":"3898:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3868:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3876:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3865:2:2"},"nodeType":"YulFunctionCall","src":"3865:30:2"},"nodeType":"YulIf","src":"3862:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4004:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:2"},"nodeType":"YulFunctionCall","src":"4000:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4053:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4064:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4049:3:2"},"nodeType":"YulFunctionCall","src":"4049:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"4073:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"4018:30:2"},"nodeType":"YulFunctionCall","src":"4018:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3993:6:2"},"nodeType":"YulFunctionCall","src":"3993:85:2"},"nodeType":"YulExpressionStatement","src":"3993:85:2"}]},{"nodeType":"YulBlock","src":"4099:154:2","statements":[{"nodeType":"YulVariableDeclaration","src":"4137:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"4151:2:2","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4141:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4178:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"4185:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4174:3:2"},"nodeType":"YulFunctionCall","src":"4174:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4228:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4213:3:2"},"nodeType":"YulFunctionCall","src":"4213:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"4237:3:2"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"4192:20:2"},"nodeType":"YulFunctionCall","src":"4192:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4167:6:2"},"nodeType":"YulFunctionCall","src":"4167:75:2"},"nodeType":"YulExpressionStatement","src":"4167:75:2"}]}]},"name":"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3234:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"3245:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3253:5:2","type":""}],"src":"3177:1083:2"},{"body":{"nodeType":"YulBlock","src":"4359:450:2","statements":[{"body":{"nodeType":"YulBlock","src":"4405:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4407:77:2"},"nodeType":"YulFunctionCall","src":"4407:79:2"},"nodeType":"YulExpressionStatement","src":"4407:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4380:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"4389:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4376:3:2"},"nodeType":"YulFunctionCall","src":"4376:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"4401:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4372:3:2"},"nodeType":"YulFunctionCall","src":"4372:32:2"},"nodeType":"YulIf","src":"4369:119:2"},{"nodeType":"YulBlock","src":"4498:304:2","statements":[{"nodeType":"YulVariableDeclaration","src":"4513:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4544:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4555:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4540:3:2"},"nodeType":"YulFunctionCall","src":"4540:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4527:12:2"},"nodeType":"YulFunctionCall","src":"4527:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4517:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"4605:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"4607:77:2"},"nodeType":"YulFunctionCall","src":"4607:79:2"},"nodeType":"YulExpressionStatement","src":"4607:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4577:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"4585:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4574:2:2"},"nodeType":"YulFunctionCall","src":"4574:30:2"},"nodeType":"YulIf","src":"4571:117:2"},{"nodeType":"YulAssignment","src":"4702:90:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4764:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4775:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4760:3:2"},"nodeType":"YulFunctionCall","src":"4760:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4784:7:2"}],"functionName":{"name":"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulIdentifier","src":"4712:47:2"},"nodeType":"YulFunctionCall","src":"4712:80:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4702:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4329:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4340:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4352:6:2","type":""}],"src":"4266:543:2"},{"body":{"nodeType":"YulBlock","src":"4860:32:2","statements":[{"nodeType":"YulAssignment","src":"4870:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"4881:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4870:7:2"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4842:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4852:7:2","type":""}],"src":"4815:77:2"},{"body":{"nodeType":"YulBlock","src":"4963:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4980:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5003:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"4985:17:2"},"nodeType":"YulFunctionCall","src":"4985:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4973:6:2"},"nodeType":"YulFunctionCall","src":"4973:37:2"},"nodeType":"YulExpressionStatement","src":"4973:37:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4951:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4958:3:2","type":""}],"src":"4898:118:2"},{"body":{"nodeType":"YulBlock","src":"5120:124:2","statements":[{"nodeType":"YulAssignment","src":"5130:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5142:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5153:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5138:3:2"},"nodeType":"YulFunctionCall","src":"5138:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5130:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5210:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5234:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:2"},"nodeType":"YulFunctionCall","src":"5219:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"5166:43:2"},"nodeType":"YulFunctionCall","src":"5166:71:2"},"nodeType":"YulExpressionStatement","src":"5166:71:2"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5092:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5104:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5115:4:2","type":""}],"src":"5022:222:2"},{"body":{"nodeType":"YulBlock","src":"5348:663:2","statements":[{"body":{"nodeType":"YulBlock","src":"5392:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"5394:77:2"},"nodeType":"YulFunctionCall","src":"5394:79:2"},"nodeType":"YulExpressionStatement","src":"5394:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5369:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"5374:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5365:3:2"},"nodeType":"YulFunctionCall","src":"5365:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"5386:4:2","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5361:3:2"},"nodeType":"YulFunctionCall","src":"5361:30:2"},"nodeType":"YulIf","src":"5358:117:2"},{"nodeType":"YulAssignment","src":"5484:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5509:4:2","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5493:15:2"},"nodeType":"YulFunctionCall","src":"5493:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5484:5:2"}]},{"nodeType":"YulBlock","src":"5524:320:2","statements":[{"nodeType":"YulVariableDeclaration","src":"5559:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5590:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5601:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5586:3:2"},"nodeType":"YulFunctionCall","src":"5586:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5573:12:2"},"nodeType":"YulFunctionCall","src":"5573:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5563:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"5651:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"5653:77:2"},"nodeType":"YulFunctionCall","src":"5653:79:2"},"nodeType":"YulExpressionStatement","src":"5653:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5623:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"5631:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5620:2:2"},"nodeType":"YulFunctionCall","src":"5620:30:2"},"nodeType":"YulIf","src":"5617:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5759:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"5766:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5755:3:2"},"nodeType":"YulFunctionCall","src":"5755:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5808:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"5819:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5804:3:2"},"nodeType":"YulFunctionCall","src":"5804:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"5828:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"5773:30:2"},"nodeType":"YulFunctionCall","src":"5773:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5748:6:2"},"nodeType":"YulFunctionCall","src":"5748:85:2"},"nodeType":"YulExpressionStatement","src":"5748:85:2"}]},{"nodeType":"YulBlock","src":"5854:150:2","statements":[{"nodeType":"YulVariableDeclaration","src":"5888:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"5902:2:2","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5892:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5929:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"5936:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5925:3:2"},"nodeType":"YulFunctionCall","src":"5925:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5968:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"5979:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5964:3:2"},"nodeType":"YulFunctionCall","src":"5964:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"5988:3:2"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"5943:20:2"},"nodeType":"YulFunctionCall","src":"5943:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5918:6:2"},"nodeType":"YulFunctionCall","src":"5918:75:2"},"nodeType":"YulExpressionStatement","src":"5918:75:2"}]}]},"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5323:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"5334:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5342:5:2","type":""}],"src":"5271:740:2"},{"body":{"nodeType":"YulBlock","src":"6105:445:2","statements":[{"body":{"nodeType":"YulBlock","src":"6151:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"6153:77:2"},"nodeType":"YulFunctionCall","src":"6153:79:2"},"nodeType":"YulExpressionStatement","src":"6153:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6126:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"6135:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6122:3:2"},"nodeType":"YulFunctionCall","src":"6122:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"6147:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6118:3:2"},"nodeType":"YulFunctionCall","src":"6118:32:2"},"nodeType":"YulIf","src":"6115:119:2"},{"nodeType":"YulBlock","src":"6244:299:2","statements":[{"nodeType":"YulVariableDeclaration","src":"6259:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6290:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"6301:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6286:3:2"},"nodeType":"YulFunctionCall","src":"6286:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6273:12:2"},"nodeType":"YulFunctionCall","src":"6273:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6263:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"6351:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"6353:77:2"},"nodeType":"YulFunctionCall","src":"6353:79:2"},"nodeType":"YulExpressionStatement","src":"6353:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6323:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6331:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6320:2:2"},"nodeType":"YulFunctionCall","src":"6320:30:2"},"nodeType":"YulIf","src":"6317:117:2"},{"nodeType":"YulAssignment","src":"6448:85:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6505:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"6516:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6501:3:2"},"nodeType":"YulFunctionCall","src":"6501:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6525:7:2"}],"functionName":{"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulIdentifier","src":"6458:42:2"},"nodeType":"YulFunctionCall","src":"6458:75:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6448:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_Person_$26_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6075:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6086:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6098:6:2","type":""}],"src":"6017:533:2"},{"body":{"nodeType":"YulBlock","src":"6622:241:2","statements":[{"body":{"nodeType":"YulBlock","src":"6727:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"6729:16:2"},"nodeType":"YulFunctionCall","src":"6729:18:2"},"nodeType":"YulExpressionStatement","src":"6729:18:2"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6699:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6707:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6696:2:2"},"nodeType":"YulFunctionCall","src":"6696:30:2"},"nodeType":"YulIf","src":"6693:56:2"},{"nodeType":"YulAssignment","src":"6759:37:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6789:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"6767:21:2"},"nodeType":"YulFunctionCall","src":"6767:29:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6759:4:2"}]},{"nodeType":"YulAssignment","src":"6833:23:2","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"6845:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"6851:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6841:3:2"},"nodeType":"YulFunctionCall","src":"6841:15:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6833:4:2"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"6606:6:2","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"6617:4:2","type":""}],"src":"6556:307:2"},{"body":{"nodeType":"YulBlock","src":"6952:327:2","statements":[{"nodeType":"YulAssignment","src":"6962:74:2","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7028:6:2"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"6987:40:2"},"nodeType":"YulFunctionCall","src":"6987:48:2"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6971:15:2"},"nodeType":"YulFunctionCall","src":"6971:65:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"6962:5:2"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7052:5:2"},{"name":"length","nodeType":"YulIdentifier","src":"7059:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7045:6:2"},"nodeType":"YulFunctionCall","src":"7045:21:2"},"nodeType":"YulExpressionStatement","src":"7045:21:2"},{"nodeType":"YulVariableDeclaration","src":"7075:27:2","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7090:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"7097:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7086:3:2"},"nodeType":"YulFunctionCall","src":"7086:16:2"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"7079:3:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"7140:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"7142:77:2"},"nodeType":"YulFunctionCall","src":"7142:79:2"},"nodeType":"YulExpressionStatement","src":"7142:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7121:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7126:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7117:3:2"},"nodeType":"YulFunctionCall","src":"7117:16:2"},{"name":"end","nodeType":"YulIdentifier","src":"7135:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7114:2:2"},"nodeType":"YulFunctionCall","src":"7114:25:2"},"nodeType":"YulIf","src":"7111:112:2"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7256:3:2"},{"name":"dst","nodeType":"YulIdentifier","src":"7261:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7266:6:2"}],"functionName":{"name":"copy_calldata_to_memory","nodeType":"YulIdentifier","src":"7232:23:2"},"nodeType":"YulFunctionCall","src":"7232:41:2"},"nodeType":"YulExpressionStatement","src":"7232:41:2"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"6925:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"6930:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"6938:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"6946:5:2","type":""}],"src":"6869:410:2"},{"body":{"nodeType":"YulBlock","src":"7359:277:2","statements":[{"body":{"nodeType":"YulBlock","src":"7408:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"7410:77:2"},"nodeType":"YulFunctionCall","src":"7410:79:2"},"nodeType":"YulExpressionStatement","src":"7410:79:2"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7387:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"7395:4:2","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7383:3:2"},"nodeType":"YulFunctionCall","src":"7383:17:2"},{"name":"end","nodeType":"YulIdentifier","src":"7402:3:2"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7379:3:2"},"nodeType":"YulFunctionCall","src":"7379:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7372:6:2"},"nodeType":"YulFunctionCall","src":"7372:35:2"},"nodeType":"YulIf","src":"7369:122:2"},{"nodeType":"YulVariableDeclaration","src":"7500:34:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7527:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7514:12:2"},"nodeType":"YulFunctionCall","src":"7514:20:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7504:6:2","type":""}]},{"nodeType":"YulAssignment","src":"7543:87:2","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7603:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"7611:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7599:3:2"},"nodeType":"YulFunctionCall","src":"7599:17:2"},{"name":"length","nodeType":"YulIdentifier","src":"7618:6:2"},{"name":"end","nodeType":"YulIdentifier","src":"7626:3:2"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"7552:46:2"},"nodeType":"YulFunctionCall","src":"7552:78:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"7543:5:2"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7337:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"7345:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7353:5:2","type":""}],"src":"7298:338:2"},{"body":{"nodeType":"YulBlock","src":"7687:81:2","statements":[{"nodeType":"YulAssignment","src":"7697:65:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7712:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"7719:42:2","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7708:3:2"},"nodeType":"YulFunctionCall","src":"7708:54:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"7697:7:2"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7669:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"7679:7:2","type":""}],"src":"7642:126:2"},{"body":{"nodeType":"YulBlock","src":"7819:51:2","statements":[{"nodeType":"YulAssignment","src":"7829:35:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7858:5:2"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"7840:17:2"},"nodeType":"YulFunctionCall","src":"7840:24:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"7829:7:2"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7801:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"7811:7:2","type":""}],"src":"7774:96:2"},{"body":{"nodeType":"YulBlock","src":"7919:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"7976:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7985:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7988:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7978:6:2"},"nodeType":"YulFunctionCall","src":"7978:12:2"},"nodeType":"YulExpressionStatement","src":"7978:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7942:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7967:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"7949:17:2"},"nodeType":"YulFunctionCall","src":"7949:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7939:2:2"},"nodeType":"YulFunctionCall","src":"7939:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7932:6:2"},"nodeType":"YulFunctionCall","src":"7932:43:2"},"nodeType":"YulIf","src":"7929:63:2"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7912:5:2","type":""}],"src":"7876:122:2"},{"body":{"nodeType":"YulBlock","src":"8056:87:2","statements":[{"nodeType":"YulAssignment","src":"8066:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8088:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8075:12:2"},"nodeType":"YulFunctionCall","src":"8075:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8066:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8131:5:2"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"8104:26:2"},"nodeType":"YulFunctionCall","src":"8104:33:2"},"nodeType":"YulExpressionStatement","src":"8104:33:2"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"8034:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"8042:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8050:5:2","type":""}],"src":"8004:139:2"},{"body":{"nodeType":"YulBlock","src":"8259:1016:2","statements":[{"body":{"nodeType":"YulBlock","src":"8303:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"8305:77:2"},"nodeType":"YulFunctionCall","src":"8305:79:2"},"nodeType":"YulExpressionStatement","src":"8305:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"8280:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"8285:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8276:3:2"},"nodeType":"YulFunctionCall","src":"8276:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"8297:4:2","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8272:3:2"},"nodeType":"YulFunctionCall","src":"8272:30:2"},"nodeType":"YulIf","src":"8269:117:2"},{"nodeType":"YulAssignment","src":"8395:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8420:4:2","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8404:15:2"},"nodeType":"YulFunctionCall","src":"8404:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8395:5:2"}]},{"nodeType":"YulBlock","src":"8435:324:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8475:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8506:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"8517:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8502:3:2"},"nodeType":"YulFunctionCall","src":"8502:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8489:12:2"},"nodeType":"YulFunctionCall","src":"8489:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8479:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"8567:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"8569:77:2"},"nodeType":"YulFunctionCall","src":"8569:79:2"},"nodeType":"YulExpressionStatement","src":"8569:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8539:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"8547:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8536:2:2"},"nodeType":"YulFunctionCall","src":"8536:30:2"},"nodeType":"YulIf","src":"8533:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8675:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"8682:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8671:3:2"},"nodeType":"YulFunctionCall","src":"8671:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8723:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"8734:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8719:3:2"},"nodeType":"YulFunctionCall","src":"8719:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"8743:3:2"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"8689:29:2"},"nodeType":"YulFunctionCall","src":"8689:58:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8664:6:2"},"nodeType":"YulFunctionCall","src":"8664:84:2"},"nodeType":"YulExpressionStatement","src":"8664:84:2"}]},{"nodeType":"YulBlock","src":"8769:153:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8806:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"8820:2:2","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8810:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8847:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"8854:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8843:3:2"},"nodeType":"YulFunctionCall","src":"8843:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8886:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"8897:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8882:3:2"},"nodeType":"YulFunctionCall","src":"8882:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"8906:3:2"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8861:20:2"},"nodeType":"YulFunctionCall","src":"8861:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8836:6:2"},"nodeType":"YulFunctionCall","src":"8836:75:2"},"nodeType":"YulExpressionStatement","src":"8836:75:2"}]},{"nodeType":"YulBlock","src":"8932:336:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8970:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9001:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"9012:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8997:3:2"},"nodeType":"YulFunctionCall","src":"8997:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8984:12:2"},"nodeType":"YulFunctionCall","src":"8984:32:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8974:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"9063:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"9065:77:2"},"nodeType":"YulFunctionCall","src":"9065:79:2"},"nodeType":"YulExpressionStatement","src":"9065:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9035:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"9043:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9032:2:2"},"nodeType":"YulFunctionCall","src":"9032:30:2"},"nodeType":"YulIf","src":"9029:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9171:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"9178:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9167:3:2"},"nodeType":"YulFunctionCall","src":"9167:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9232:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"9243:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9228:3:2"},"nodeType":"YulFunctionCall","src":"9228:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"9252:3:2"}],"functionName":{"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulIdentifier","src":"9185:42:2"},"nodeType":"YulFunctionCall","src":"9185:71:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9160:6:2"},"nodeType":"YulFunctionCall","src":"9160:97:2"},"nodeType":"YulExpressionStatement","src":"9160:97:2"}]}]},"name":"abi_decode_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8234:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"8245:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8253:5:2","type":""}],"src":"8176:1099:2"},{"body":{"nodeType":"YulBlock","src":"9375:451:2","statements":[{"body":{"nodeType":"YulBlock","src":"9421:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"9423:77:2"},"nodeType":"YulFunctionCall","src":"9423:79:2"},"nodeType":"YulExpressionStatement","src":"9423:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9396:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"9405:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9392:3:2"},"nodeType":"YulFunctionCall","src":"9392:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"9417:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9388:3:2"},"nodeType":"YulFunctionCall","src":"9388:32:2"},"nodeType":"YulIf","src":"9385:119:2"},{"nodeType":"YulBlock","src":"9514:305:2","statements":[{"nodeType":"YulVariableDeclaration","src":"9529:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9560:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"9571:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9556:3:2"},"nodeType":"YulFunctionCall","src":"9556:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9543:12:2"},"nodeType":"YulFunctionCall","src":"9543:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9533:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"9621:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"9623:77:2"},"nodeType":"YulFunctionCall","src":"9623:79:2"},"nodeType":"YulExpressionStatement","src":"9623:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9593:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"9601:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9590:2:2"},"nodeType":"YulFunctionCall","src":"9590:30:2"},"nodeType":"YulIf","src":"9587:117:2"},{"nodeType":"YulAssignment","src":"9718:91:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9781:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"9792:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9777:3:2"},"nodeType":"YulFunctionCall","src":"9777:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9801:7:2"}],"functionName":{"name":"abi_decode_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulIdentifier","src":"9728:48:2"},"nodeType":"YulFunctionCall","src":"9728:81:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9718:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9345:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9356:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9368:6:2","type":""}],"src":"9281:545:2"},{"body":{"nodeType":"YulBlock","src":"9897:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9914:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9937:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"9919:17:2"},"nodeType":"YulFunctionCall","src":"9919:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9907:6:2"},"nodeType":"YulFunctionCall","src":"9907:37:2"},"nodeType":"YulExpressionStatement","src":"9907:37:2"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9885:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9892:3:2","type":""}],"src":"9832:118:2"},{"body":{"nodeType":"YulBlock","src":"10054:124:2","statements":[{"nodeType":"YulAssignment","src":"10064:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10076:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10072:3:2"},"nodeType":"YulFunctionCall","src":"10072:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10064:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10144:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10157:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"10168:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10153:3:2"},"nodeType":"YulFunctionCall","src":"10153:17:2"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"10100:43:2"},"nodeType":"YulFunctionCall","src":"10100:71:2"},"nodeType":"YulExpressionStatement","src":"10100:71:2"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10026:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10038:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10049:4:2","type":""}],"src":"9956:222:2"},{"body":{"nodeType":"YulBlock","src":"10243:40:2","statements":[{"nodeType":"YulAssignment","src":"10254:22:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10270:5:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10264:5:2"},"nodeType":"YulFunctionCall","src":"10264:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10254:6:2"}]}]},"name":"array_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10226:5:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10236:6:2","type":""}],"src":"10184:99:2"},{"body":{"nodeType":"YulBlock","src":"10385:73:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10402:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"10407:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10395:6:2"},"nodeType":"YulFunctionCall","src":"10395:19:2"},"nodeType":"YulExpressionStatement","src":"10395:19:2"},{"nodeType":"YulAssignment","src":"10423:29:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10442:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"10447:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10438:3:2"},"nodeType":"YulFunctionCall","src":"10438:14:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"10423:11:2"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10357:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"10362:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"10373:11:2","type":""}],"src":"10289:169:2"},{"body":{"nodeType":"YulBlock","src":"10513:258:2","statements":[{"nodeType":"YulVariableDeclaration","src":"10523:10:2","value":{"kind":"number","nodeType":"YulLiteral","src":"10532:1:2","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10527:1:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"10592:63:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10617:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"10622:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10613:3:2"},"nodeType":"YulFunctionCall","src":"10613:11:2"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10636:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"10641:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10632:3:2"},"nodeType":"YulFunctionCall","src":"10632:11:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10626:5:2"},"nodeType":"YulFunctionCall","src":"10626:18:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10606:6:2"},"nodeType":"YulFunctionCall","src":"10606:39:2"},"nodeType":"YulExpressionStatement","src":"10606:39:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10553:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"10556:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10550:2:2"},"nodeType":"YulFunctionCall","src":"10550:13:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10564:19:2","statements":[{"nodeType":"YulAssignment","src":"10566:15:2","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10575:1:2"},{"kind":"number","nodeType":"YulLiteral","src":"10578:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10571:3:2"},"nodeType":"YulFunctionCall","src":"10571:10:2"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10566:1:2"}]}]},"pre":{"nodeType":"YulBlock","src":"10546:3:2","statements":[]},"src":"10542:113:2"},{"body":{"nodeType":"YulBlock","src":"10689:76:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10739:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"10744:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10735:3:2"},"nodeType":"YulFunctionCall","src":"10735:16:2"},{"kind":"number","nodeType":"YulLiteral","src":"10753:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10728:6:2"},"nodeType":"YulFunctionCall","src":"10728:27:2"},"nodeType":"YulExpressionStatement","src":"10728:27:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10670:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"10673:6:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10667:2:2"},"nodeType":"YulFunctionCall","src":"10667:13:2"},"nodeType":"YulIf","src":"10664:101:2"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"10495:3:2","type":""},{"name":"dst","nodeType":"YulTypedName","src":"10500:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"10505:6:2","type":""}],"src":"10464:307:2"},{"body":{"nodeType":"YulBlock","src":"10869:272:2","statements":[{"nodeType":"YulVariableDeclaration","src":"10879:53:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10926:5:2"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"10893:32:2"},"nodeType":"YulFunctionCall","src":"10893:39:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10883:6:2","type":""}]},{"nodeType":"YulAssignment","src":"10941:78:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11007:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"11012:6:2"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10948:58:2"},"nodeType":"YulFunctionCall","src":"10948:71:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10941:3:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11054:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"11061:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11050:3:2"},"nodeType":"YulFunctionCall","src":"11050:16:2"},{"name":"pos","nodeType":"YulIdentifier","src":"11068:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"11073:6:2"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11028:21:2"},"nodeType":"YulFunctionCall","src":"11028:52:2"},"nodeType":"YulExpressionStatement","src":"11028:52:2"},{"nodeType":"YulAssignment","src":"11089:46:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11100:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11127:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"11105:21:2"},"nodeType":"YulFunctionCall","src":"11105:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11096:3:2"},"nodeType":"YulFunctionCall","src":"11096:39:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11089:3:2"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10850:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10857:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10865:3:2","type":""}],"src":"10777:364:2"},{"body":{"nodeType":"YulBlock","src":"11212:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11229:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11252:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"11234:17:2"},"nodeType":"YulFunctionCall","src":"11234:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11222:6:2"},"nodeType":"YulFunctionCall","src":"11222:37:2"},"nodeType":"YulExpressionStatement","src":"11222:37:2"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11200:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11207:3:2","type":""}],"src":"11147:118:2"},{"body":{"nodeType":"YulBlock","src":"11493:513:2","statements":[{"nodeType":"YulAssignment","src":"11503:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11515:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11526:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11511:3:2"},"nodeType":"YulFunctionCall","src":"11511:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11503:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11584:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11597:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11608:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11593:3:2"},"nodeType":"YulFunctionCall","src":"11593:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"11540:43:2"},"nodeType":"YulFunctionCall","src":"11540:71:2"},"nodeType":"YulExpressionStatement","src":"11540:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11632:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11643:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11628:3:2"},"nodeType":"YulFunctionCall","src":"11628:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11652:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"11658:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11648:3:2"},"nodeType":"YulFunctionCall","src":"11648:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11621:6:2"},"nodeType":"YulFunctionCall","src":"11621:48:2"},"nodeType":"YulExpressionStatement","src":"11621:48:2"},{"nodeType":"YulAssignment","src":"11678:86:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11750:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"11759:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11686:63:2"},"nodeType":"YulFunctionCall","src":"11686:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11678:4:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11785:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11796:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11781:3:2"},"nodeType":"YulFunctionCall","src":"11781:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11805:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"11811:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11801:3:2"},"nodeType":"YulFunctionCall","src":"11801:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11774:6:2"},"nodeType":"YulFunctionCall","src":"11774:48:2"},"nodeType":"YulExpressionStatement","src":"11774:48:2"},{"nodeType":"YulAssignment","src":"11831:86:2","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11903:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"11912:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11839:63:2"},"nodeType":"YulFunctionCall","src":"11839:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11831:4:2"}]},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11971:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11984:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11995:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11980:3:2"},"nodeType":"YulFunctionCall","src":"11980:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"11927:43:2"},"nodeType":"YulFunctionCall","src":"11927:72:2"},"nodeType":"YulExpressionStatement","src":"11927:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11441:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11453:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11461:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11469:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11477:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11488:4:2","type":""}],"src":"11271:735:2"},{"body":{"nodeType":"YulBlock","src":"12186:359:2","statements":[{"nodeType":"YulAssignment","src":"12196:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12208:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12219:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12204:3:2"},"nodeType":"YulFunctionCall","src":"12204:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12196:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12276:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12289:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12300:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12285:3:2"},"nodeType":"YulFunctionCall","src":"12285:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"12232:43:2"},"nodeType":"YulFunctionCall","src":"12232:71:2"},"nodeType":"YulExpressionStatement","src":"12232:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12324:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12335:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12320:3:2"},"nodeType":"YulFunctionCall","src":"12320:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12344:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"12350:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12340:3:2"},"nodeType":"YulFunctionCall","src":"12340:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12313:6:2"},"nodeType":"YulFunctionCall","src":"12313:48:2"},"nodeType":"YulExpressionStatement","src":"12313:48:2"},{"nodeType":"YulAssignment","src":"12370:86:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12442:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"12451:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"12378:63:2"},"nodeType":"YulFunctionCall","src":"12378:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12370:4:2"}]},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12510:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12523:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12534:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12519:3:2"},"nodeType":"YulFunctionCall","src":"12519:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"12466:43:2"},"nodeType":"YulFunctionCall","src":"12466:72:2"},"nodeType":"YulExpressionStatement","src":"12466:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12142:9:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12154:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12162:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12170:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12181:4:2","type":""}],"src":"12012:533:2"},{"body":{"nodeType":"YulBlock","src":"12665:34:2","statements":[{"nodeType":"YulAssignment","src":"12675:18:2","value":{"name":"pos","nodeType":"YulIdentifier","src":"12690:3:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"12675:11:2"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12637:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"12642:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"12653:11:2","type":""}],"src":"12551:148:2"},{"body":{"nodeType":"YulBlock","src":"12811:108:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12833:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"12841:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12829:3:2"},"nodeType":"YulFunctionCall","src":"12829:14:2"},{"kind":"number","nodeType":"YulLiteral","src":"12845:66:2","type":"","value":"0x1901000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12822:6:2"},"nodeType":"YulFunctionCall","src":"12822:90:2"},"nodeType":"YulExpressionStatement","src":"12822:90:2"}]},"name":"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"12803:6:2","type":""}],"src":"12705:214:2"},{"body":{"nodeType":"YulBlock","src":"13089:236:2","statements":[{"nodeType":"YulAssignment","src":"13099:91:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13183:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"13188:1:2","type":"","value":"2"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"13106:76:2"},"nodeType":"YulFunctionCall","src":"13106:84:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13099:3:2"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13288:3:2"}],"functionName":{"name":"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","nodeType":"YulIdentifier","src":"13199:88:2"},"nodeType":"YulFunctionCall","src":"13199:93:2"},"nodeType":"YulExpressionStatement","src":"13199:93:2"},{"nodeType":"YulAssignment","src":"13301:18:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13312:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"13317:1:2","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13308:3:2"},"nodeType":"YulFunctionCall","src":"13308:11:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13301:3:2"}]}]},"name":"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13077:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13085:3:2","type":""}],"src":"12925:400:2"},{"body":{"nodeType":"YulBlock","src":"13378:32:2","statements":[{"nodeType":"YulAssignment","src":"13388:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"13399:5:2"},"variableNames":[{"name":"aligned","nodeType":"YulIdentifier","src":"13388:7:2"}]}]},"name":"leftAlign_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13360:5:2","type":""}],"returnVariables":[{"name":"aligned","nodeType":"YulTypedName","src":"13370:7:2","type":""}],"src":"13331:79:2"},{"body":{"nodeType":"YulBlock","src":"13499:74:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13516:3:2"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13559:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"13541:17:2"},"nodeType":"YulFunctionCall","src":"13541:24:2"}],"functionName":{"name":"leftAlign_t_bytes32","nodeType":"YulIdentifier","src":"13521:19:2"},"nodeType":"YulFunctionCall","src":"13521:45:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13509:6:2"},"nodeType":"YulFunctionCall","src":"13509:58:2"},"nodeType":"YulExpressionStatement","src":"13509:58:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13487:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"13494:3:2","type":""}],"src":"13416:157:2"},{"body":{"nodeType":"YulBlock","src":"13824:418:2","statements":[{"nodeType":"YulAssignment","src":"13835:155:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13986:3:2"}],"functionName":{"name":"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"13842:142:2"},"nodeType":"YulFunctionCall","src":"13842:148:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13835:3:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14062:6:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14071:3:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"14000:61:2"},"nodeType":"YulFunctionCall","src":"14000:75:2"},"nodeType":"YulExpressionStatement","src":"14000:75:2"},{"nodeType":"YulAssignment","src":"14084:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14095:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14100:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14091:3:2"},"nodeType":"YulFunctionCall","src":"14091:12:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14084:3:2"}]},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14175:6:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14184:3:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"14113:61:2"},"nodeType":"YulFunctionCall","src":"14113:75:2"},"nodeType":"YulExpressionStatement","src":"14113:75:2"},{"nodeType":"YulAssignment","src":"14197:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14208:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14213:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14204:3:2"},"nodeType":"YulFunctionCall","src":"14204:12:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14197:3:2"}]},{"nodeType":"YulAssignment","src":"14226:10:2","value":{"name":"pos","nodeType":"YulIdentifier","src":"14233:3:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14226:3:2"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13795:3:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13801:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13809:6:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13820:3:2","type":""}],"src":"13579:663:2"},{"body":{"nodeType":"YulBlock","src":"14306:40:2","statements":[{"nodeType":"YulAssignment","src":"14317:22:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14333:5:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14327:5:2"},"nodeType":"YulFunctionCall","src":"14327:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14317:6:2"}]}]},"name":"array_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14289:5:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14299:6:2","type":""}],"src":"14248:98:2"},{"body":{"nodeType":"YulBlock","src":"14447:73:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14464:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14469:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14457:6:2"},"nodeType":"YulFunctionCall","src":"14457:19:2"},"nodeType":"YulExpressionStatement","src":"14457:19:2"},{"nodeType":"YulAssignment","src":"14485:29:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14504:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14509:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14500:3:2"},"nodeType":"YulFunctionCall","src":"14500:14:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"14485:11:2"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14419:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"14424:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"14435:11:2","type":""}],"src":"14352:168:2"},{"body":{"nodeType":"YulBlock","src":"14616:270:2","statements":[{"nodeType":"YulVariableDeclaration","src":"14626:52:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14672:5:2"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"14640:31:2"},"nodeType":"YulFunctionCall","src":"14640:38:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14630:6:2","type":""}]},{"nodeType":"YulAssignment","src":"14687:77:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14752:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14757:6:2"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14694:57:2"},"nodeType":"YulFunctionCall","src":"14694:70:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14687:3:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14799:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"14806:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14795:3:2"},"nodeType":"YulFunctionCall","src":"14795:16:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14813:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14818:6:2"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"14773:21:2"},"nodeType":"YulFunctionCall","src":"14773:52:2"},"nodeType":"YulExpressionStatement","src":"14773:52:2"},{"nodeType":"YulAssignment","src":"14834:46:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14845:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14872:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"14850:21:2"},"nodeType":"YulFunctionCall","src":"14850:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14841:3:2"},"nodeType":"YulFunctionCall","src":"14841:39:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14834:3:2"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14597:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14604:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14612:3:2","type":""}],"src":"14526:360:2"},{"body":{"nodeType":"YulBlock","src":"15036:275:2","statements":[{"nodeType":"YulAssignment","src":"15046:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15054:3:2"},"nodeType":"YulFunctionCall","src":"15054:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15046:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15126:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15139:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15150:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15135:3:2"},"nodeType":"YulFunctionCall","src":"15135:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"15082:43:2"},"nodeType":"YulFunctionCall","src":"15082:71:2"},"nodeType":"YulExpressionStatement","src":"15082:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15174:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15185:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15170:3:2"},"nodeType":"YulFunctionCall","src":"15170:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15194:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"15200:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15190:3:2"},"nodeType":"YulFunctionCall","src":"15190:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15163:6:2"},"nodeType":"YulFunctionCall","src":"15163:48:2"},"nodeType":"YulExpressionStatement","src":"15163:48:2"},{"nodeType":"YulAssignment","src":"15220:84:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15290:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"15299:4:2"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15228:61:2"},"nodeType":"YulFunctionCall","src":"15228:76:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15220:4:2"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15000:9:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15012:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15020:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15031:4:2","type":""}],"src":"14892:419:2"},{"body":{"nodeType":"YulBlock","src":"15361:105:2","statements":[{"nodeType":"YulAssignment","src":"15371:89:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15386:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"15393:66:2","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15382:3:2"},"nodeType":"YulFunctionCall","src":"15382:78:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"15371:7:2"}]}]},"name":"cleanup_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15343:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"15353:7:2","type":""}],"src":"15317:149:2"},{"body":{"nodeType":"YulBlock","src":"15514:78:2","statements":[{"body":{"nodeType":"YulBlock","src":"15570:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15579:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15582:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15572:6:2"},"nodeType":"YulFunctionCall","src":"15572:12:2"},"nodeType":"YulExpressionStatement","src":"15572:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15537:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15561:5:2"}],"functionName":{"name":"cleanup_t_bytes4","nodeType":"YulIdentifier","src":"15544:16:2"},"nodeType":"YulFunctionCall","src":"15544:23:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15534:2:2"},"nodeType":"YulFunctionCall","src":"15534:34:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15527:6:2"},"nodeType":"YulFunctionCall","src":"15527:42:2"},"nodeType":"YulIf","src":"15524:62:2"}]},"name":"validator_revert_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15507:5:2","type":""}],"src":"15472:120:2"},{"body":{"nodeType":"YulBlock","src":"15660:79:2","statements":[{"nodeType":"YulAssignment","src":"15670:22:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"15685:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15679:5:2"},"nodeType":"YulFunctionCall","src":"15679:13:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"15670:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15727:5:2"}],"functionName":{"name":"validator_revert_t_bytes4","nodeType":"YulIdentifier","src":"15701:25:2"},"nodeType":"YulFunctionCall","src":"15701:32:2"},"nodeType":"YulExpressionStatement","src":"15701:32:2"}]},"name":"abi_decode_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"15638:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"15646:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"15654:5:2","type":""}],"src":"15598:141:2"},{"body":{"nodeType":"YulBlock","src":"15821:273:2","statements":[{"body":{"nodeType":"YulBlock","src":"15867:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"15869:77:2"},"nodeType":"YulFunctionCall","src":"15869:79:2"},"nodeType":"YulExpressionStatement","src":"15869:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15842:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"15851:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15838:3:2"},"nodeType":"YulFunctionCall","src":"15838:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"15863:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15834:3:2"},"nodeType":"YulFunctionCall","src":"15834:32:2"},"nodeType":"YulIf","src":"15831:119:2"},{"nodeType":"YulBlock","src":"15960:127:2","statements":[{"nodeType":"YulVariableDeclaration","src":"15975:15:2","value":{"kind":"number","nodeType":"YulLiteral","src":"15989:1:2","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"15979:6:2","type":""}]},{"nodeType":"YulAssignment","src":"16004:73:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16049:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"16060:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16045:3:2"},"nodeType":"YulFunctionCall","src":"16045:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16069:7:2"}],"functionName":{"name":"abi_decode_t_bytes4_fromMemory","nodeType":"YulIdentifier","src":"16014:30:2"},"nodeType":"YulFunctionCall","src":"16014:63:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16004:6:2"}]}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15791:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15802:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15814:6:2","type":""}],"src":"15745:349:2"},{"body":{"nodeType":"YulBlock","src":"16206:61:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"16228:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"16236:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16224:3:2"},"nodeType":"YulFunctionCall","src":"16224:14:2"},{"hexValue":"494e56414c49445f5349474e4154555245","kind":"string","nodeType":"YulLiteral","src":"16240:19:2","type":"","value":"INVALID_SIGNATURE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16217:6:2"},"nodeType":"YulFunctionCall","src":"16217:43:2"},"nodeType":"YulExpressionStatement","src":"16217:43:2"}]},"name":"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"16198:6:2","type":""}],"src":"16100:167:2"},{"body":{"nodeType":"YulBlock","src":"16419:220:2","statements":[{"nodeType":"YulAssignment","src":"16429:74:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16495:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"16500:2:2","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16436:58:2"},"nodeType":"YulFunctionCall","src":"16436:67:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16429:3:2"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16601:3:2"}],"functionName":{"name":"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","nodeType":"YulIdentifier","src":"16512:88:2"},"nodeType":"YulFunctionCall","src":"16512:93:2"},"nodeType":"YulExpressionStatement","src":"16512:93:2"},{"nodeType":"YulAssignment","src":"16614:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16625:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"16630:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16621:3:2"},"nodeType":"YulFunctionCall","src":"16621:12:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16614:3:2"}]}]},"name":"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16407:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16415:3:2","type":""}],"src":"16273:366:2"},{"body":{"nodeType":"YulBlock","src":"16816:248:2","statements":[{"nodeType":"YulAssignment","src":"16826:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16838:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"16849:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16834:3:2"},"nodeType":"YulFunctionCall","src":"16834:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16826:4:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16873:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"16884:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16869:3:2"},"nodeType":"YulFunctionCall","src":"16869:17:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16892:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"16898:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16888:3:2"},"nodeType":"YulFunctionCall","src":"16888:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16862:6:2"},"nodeType":"YulFunctionCall","src":"16862:47:2"},"nodeType":"YulExpressionStatement","src":"16862:47:2"},{"nodeType":"YulAssignment","src":"16918:139:2","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17052:4:2"}],"functionName":{"name":"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16926:124:2"},"nodeType":"YulFunctionCall","src":"16926:131:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16918:4:2"}]}]},"name":"abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16796:9:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16811:4:2","type":""}],"src":"16645:419:2"},{"body":{"nodeType":"YulBlock","src":"17113:43:2","statements":[{"nodeType":"YulAssignment","src":"17123:27:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17138:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"17145:4:2","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17134:3:2"},"nodeType":"YulFunctionCall","src":"17134:16:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"17123:7:2"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17095:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"17105:7:2","type":""}],"src":"17070:86:2"},{"body":{"nodeType":"YulBlock","src":"17190:152:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17207:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17210:77:2","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17200:6:2"},"nodeType":"YulFunctionCall","src":"17200:88:2"},"nodeType":"YulExpressionStatement","src":"17200:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17304:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17307:4:2","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17297:6:2"},"nodeType":"YulFunctionCall","src":"17297:15:2"},"nodeType":"YulExpressionStatement","src":"17297:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17328:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17331:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17321:6:2"},"nodeType":"YulFunctionCall","src":"17321:15:2"},"nodeType":"YulExpressionStatement","src":"17321:15:2"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"17162:180:2"},{"body":{"nodeType":"YulBlock","src":"17390:195:2","statements":[{"nodeType":"YulAssignment","src":"17400:23:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17421:1:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17405:15:2"},"nodeType":"YulFunctionCall","src":"17405:18:2"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"17400:1:2"}]},{"nodeType":"YulAssignment","src":"17432:23:2","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17453:1:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17437:15:2"},"nodeType":"YulFunctionCall","src":"17437:18:2"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"17432:1:2"}]},{"body":{"nodeType":"YulBlock","src":"17531:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17533:16:2"},"nodeType":"YulFunctionCall","src":"17533:18:2"},"nodeType":"YulExpressionStatement","src":"17533:18:2"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17514:1:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17521:4:2","type":"","value":"0xff"},{"name":"y","nodeType":"YulIdentifier","src":"17527:1:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17517:3:2"},"nodeType":"YulFunctionCall","src":"17517:12:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17511:2:2"},"nodeType":"YulFunctionCall","src":"17511:19:2"},"nodeType":"YulIf","src":"17508:45:2"},{"nodeType":"YulAssignment","src":"17563:16:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17574:1:2"},{"name":"y","nodeType":"YulIdentifier","src":"17577:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17570:3:2"},"nodeType":"YulFunctionCall","src":"17570:9:2"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"17563:3:2"}]}]},"name":"checked_add_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17377:1:2","type":""},{"name":"y","nodeType":"YulTypedName","src":"17380:1:2","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"17386:3:2","type":""}],"src":"17348:237:2"},{"body":{"nodeType":"YulBlock","src":"17652:51:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17669:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17690:5:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17674:15:2"},"nodeType":"YulFunctionCall","src":"17674:22:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17662:6:2"},"nodeType":"YulFunctionCall","src":"17662:35:2"},"nodeType":"YulExpressionStatement","src":"17662:35:2"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17640:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"17647:3:2","type":""}],"src":"17591:112:2"},{"body":{"nodeType":"YulBlock","src":"17887:367:2","statements":[{"nodeType":"YulAssignment","src":"17897:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17909:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"17920:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17905:3:2"},"nodeType":"YulFunctionCall","src":"17905:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17897:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17978:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17991:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18002:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17987:3:2"},"nodeType":"YulFunctionCall","src":"17987:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"17934:43:2"},"nodeType":"YulFunctionCall","src":"17934:71:2"},"nodeType":"YulExpressionStatement","src":"17934:71:2"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18055:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18068:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18079:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18064:3:2"},"nodeType":"YulFunctionCall","src":"18064:18:2"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulIdentifier","src":"18015:39:2"},"nodeType":"YulFunctionCall","src":"18015:68:2"},"nodeType":"YulExpressionStatement","src":"18015:68:2"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18137:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18150:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18161:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18146:3:2"},"nodeType":"YulFunctionCall","src":"18146:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"18093:43:2"},"nodeType":"YulFunctionCall","src":"18093:72:2"},"nodeType":"YulExpressionStatement","src":"18093:72:2"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18219:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18232:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18243:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18228:3:2"},"nodeType":"YulFunctionCall","src":"18228:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"18175:43:2"},"nodeType":"YulFunctionCall","src":"18175:72:2"},"nodeType":"YulExpressionStatement","src":"18175:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17835:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17847:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17855:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17863:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17871:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17882:4:2","type":""}],"src":"17709:545:2"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct EIP712Domain\n function abi_decode_t_struct$_EIP712Domain_$8_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // name\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // version\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // chainId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_EIP712Domain_$8_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n // struct Person\n function abi_decode_t_struct$_Person_$26_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // name\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // age\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Person_$26_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Person_$26_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // struct signedPerson\n function abi_decode_t_struct$_signedPerson_$21_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // signature\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // signer\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // message\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_struct$_Person_$26_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_signedPerson_$21_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541(memPtr) {\n\n mstore(add(memPtr, 0), 0x1901000000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541(pos)\n end := add(pos, 2)\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88(memPtr) {\n\n mstore(add(memPtr, 0), \"INVALID_SIGNATURE\")\n\n }\n\n function abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint8(x, y) -> sum {\n x := cleanup_t_uint8(x)\n y := cleanup_t_uint8(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n","id":2,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220b813aca3be4d82a116ff8bb776d30aec88874ca56c30845170089417c231849664736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BC39162 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x83EBB771 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x8F4F876A EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA23CF6E EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x4B1B66E1DAD0EB5853B62DD86EBAC7B66C400129B72DA1FF5FDA43303A4F44DB DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x16F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EC PUSH2 0x166 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FE SWAP3 SWAP2 SWAP1 PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26B JUMPI PUSH1 0x0 PUSH2 0x25E DUP3 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x36B JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP PUSH2 0x366 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E DUP4 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B0 SWAP3 SWAP2 SWAP1 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0xC68 JUMP JUMPDEST SWAP1 POP PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x352 SWAP1 PUSH2 0xCE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x41 DUP6 MLOAD EQ PUSH2 0x386 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH1 0x1B DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x1B DUP2 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0xD3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1B DUP2 PUSH1 0xFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI POP PUSH1 0x1C DUP2 PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x1 DUP7 DUP3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x406 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD83 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x428 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4A0 DUP3 PUSH2 0x457 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4BF JUMPI PUSH2 0x4BE PUSH2 0x468 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D2 PUSH2 0x43E JUMP JUMPDEST SWAP1 POP PUSH2 0x4DE DUP3 DUP3 PUSH2 0x497 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x516 DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x545 PUSH2 0x540 DUP5 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x56C DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x599 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x532 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5D2 DUP2 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5ED PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x5F8 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x618 JUMPI PUSH2 0x617 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x624 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x648 JUMPI PUSH2 0x647 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x654 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x668 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x68A JUMPI PUSH2 0x689 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A7 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x6B4 DUP5 DUP3 DUP6 ADD PUSH2 0x5D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D0 DUP2 PUSH2 0x6BD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x711 PUSH1 0x40 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x731 JUMPI PUSH2 0x730 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x73D DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x751 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x773 JUMPI PUSH2 0x772 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x79D DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x7CA DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EA PUSH2 0x7E5 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x811 DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x82E JUMPI PUSH2 0x82D PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x83E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x872 DUP3 PUSH2 0x847 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x882 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP2 EQ PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x89F DUP2 PUSH2 0x879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x8C5 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8E5 JUMPI PUSH2 0x8E4 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x8F1 DUP5 DUP3 DUP6 ADD PUSH2 0x819 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x905 DUP5 DUP3 DUP6 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x935 DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x957 JUMPI PUSH2 0x956 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x974 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x981 DUP5 DUP3 DUP6 ADD PUSH2 0x8A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x98A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0E DUP3 PUSH2 0x9B4 JUMP JUMPDEST PUSH2 0xA18 DUP2 DUP6 PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH2 0xA28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xA60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA72 DUP2 DUP7 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA86 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xA95 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAB3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAC5 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xAD4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1D PUSH1 0x2 DUP4 PUSH2 0xADC JUMP JUMPDEST SWAP2 POP PUSH2 0xB28 DUP3 PUSH2 0xAE7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB4E PUSH2 0xB49 DUP3 PUSH2 0x6BD JUMP JUMPDEST PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5F DUP3 PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6B DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xB7B DUP3 DUP5 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB8B JUMP JUMPDEST PUSH2 0xBBC DUP2 DUP6 PUSH2 0xB96 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xBD5 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xBF5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC07 DUP2 DUP5 PUSH2 0xBA7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC45 DUP2 PUSH2 0xC10 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC62 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7E JUMPI PUSH2 0xC7D PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8C DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCB PUSH1 0x11 DUP4 PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP PUSH2 0xCD6 DUP3 PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCFA DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD48 DUP3 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0xD01 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xD69 JUMPI PUSH2 0xD68 PUSH2 0xD0E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xD98 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDA5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xD74 JUMP JUMPDEST PUSH2 0xDB2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDBF PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 SGT 0xAC LOG3 0xBE 0x4D DUP3 LOG1 AND SELFDESTRUCT DUP12 0xB7 PUSH23 0xD30AEC88874CA56C30845170089417C231849664736F6C PUSH4 0x4300080D STOP CALLER ","sourceMap":"89:482:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:279:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;470:99:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2538:235:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:768;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2255:279;2342:7;2362:20;177:69;2432:6;:11;;;2451:6;:14;;;2473:6;:14;;;2385:108;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2362:131;;2521:7;2511:18;;;;;;2504:25;;;2255:279;;;:::o;470:99:1:-;526:7;552:10;;545:17;;470:99;:::o;2538:235:0:-;2613:7;2633:20;415:44;2697:6;:11;;;2716:6;:10;;;2656:76;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2633:99;;2760:7;2750:18;;;;;;2743:25;;;2538:235;;;:::o;2779:768::-;2856:7;2873:18;2894:37;2916:6;:14;;;2894:21;:37::i;:::-;2873:58;;2939:14;3025:15;:13;:15::i;:::-;3052:10;2975:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2956:124;;;;;;2939:141;;3110:42;3093:59;;:6;:13;;;:59;;;3089:452;;3164:23;3190:63;3209:6;3227;:16;;;3190:7;:63::i;:::-;3164:89;;3270:15;3263:22;;;;;;;3089:452;3353:13;3385:6;:13;;;3369:47;;;3417:6;3425;:16;;;3369:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3353:89;;3470:10;3460:20;;:6;:20;;;;3452:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3519:6;:13;;;3512:20;;;;;2779:768;;;;:::o;1549:702::-;1621:7;1636:9;1651;1666:7;1732:2;1718:3;:10;:16;1714:56;;1760:1;1744:19;;;;;;;1714:56;1865:2;1860:3;1856:12;1850:19;1845:24;;1896:2;1891:3;1887:12;1881:19;1876:24;;1935:2;1930:3;1926:12;1920:19;1917:1;1912:28;1907:33;;2046:2;2042:1;:6;;;2038:34;;;2063:2;2058:7;;;;;:::i;:::-;;;2038:34;2146:2;2141:1;:7;;;;:18;;;;;2157:2;2152:1;:7;;;;2141:18;2137:110;;;2185:1;2169:19;;;;;;;2137:110;2216:24;2226:4;2232:1;2235;2238;2216:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2209:31;;;;;1549:702;;;;;:::o;7:75:2:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:117::-;1282:1;1279;1272:12;1296:117;1405:1;1402;1395:12;1419:117;1528:1;1525;1518:12;1542:308;1604:4;1694:18;1686:6;1683:30;1680:56;;;1716:18;;:::i;:::-;1680:56;1754:29;1776:6;1754:29;:::i;:::-;1746:37;;1838:4;1832;1828:15;1820:23;;1542:308;;;:::o;1856:154::-;1940:6;1935:3;1930;1917:30;2002:1;1993:6;1988:3;1984:16;1977:27;1856:154;;;:::o;2016:412::-;2094:5;2119:66;2135:49;2177:6;2135:49;:::i;:::-;2119:66;:::i;:::-;2110:75;;2208:6;2201:5;2194:21;2246:4;2239:5;2235:16;2284:3;2275:6;2270:3;2266:16;2263:25;2260:112;;;2291:79;;:::i;:::-;2260:112;2381:41;2415:6;2410:3;2405;2381:41;:::i;:::-;2100:328;2016:412;;;;;:::o;2448:340::-;2504:5;2553:3;2546:4;2538:6;2534:17;2530:27;2520:122;;2561:79;;:::i;:::-;2520:122;2678:6;2665:20;2703:79;2778:3;2770:6;2763:4;2755:6;2751:17;2703:79;:::i;:::-;2694:88;;2510:278;2448:340;;;;:::o;2794:77::-;2831:7;2860:5;2849:16;;2794:77;;;:::o;2877:122::-;2950:24;2968:5;2950:24;:::i;:::-;2943:5;2940:35;2930:63;;2989:1;2986;2979:12;2930:63;2877:122;:::o;3005:139::-;3051:5;3089:6;3076:20;3067:29;;3105:33;3132:5;3105:33;:::i;:::-;3005:139;;;;:::o;3177:1083::-;3253:5;3297:4;3285:9;3280:3;3276:19;3272:30;3269:117;;;3305:79;;:::i;:::-;3269:117;3404:21;3420:4;3404:21;:::i;:::-;3395:30;;3512:1;3501:9;3497:17;3484:31;3542:18;3534:6;3531:30;3528:117;;;3564:79;;:::i;:::-;3528:117;3684:59;3739:3;3730:6;3719:9;3715:22;3684:59;:::i;:::-;3677:4;3670:5;3666:16;3659:85;3435:320;3845:2;3834:9;3830:18;3817:32;3876:18;3868:6;3865:30;3862:117;;;3898:79;;:::i;:::-;3862:117;4018:59;4073:3;4064:6;4053:9;4049:22;4018:59;:::i;:::-;4011:4;4004:5;4000:16;3993:85;3765:324;4151:2;4192:49;4237:3;4228:6;4217:9;4213:22;4192:49;:::i;:::-;4185:4;4178:5;4174:16;4167:75;4099:154;3177:1083;;;;:::o;4266:543::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:119;;;4407:79;;:::i;:::-;4369:119;4555:1;4544:9;4540:17;4527:31;4585:18;4577:6;4574:30;4571:117;;;4607:79;;:::i;:::-;4571:117;4712:80;4784:7;4775:6;4764:9;4760:22;4712:80;:::i;:::-;4702:90;;4498:304;4266:543;;;;:::o;4815:77::-;4852:7;4881:5;4870:16;;4815:77;;;:::o;4898:118::-;4985:24;5003:5;4985:24;:::i;:::-;4980:3;4973:37;4898:118;;:::o;5022:222::-;5115:4;5153:2;5142:9;5138:18;5130:26;;5166:71;5234:1;5223:9;5219:17;5210:6;5166:71;:::i;:::-;5022:222;;;;:::o;5271:740::-;5342:5;5386:4;5374:9;5369:3;5365:19;5361:30;5358:117;;;5394:79;;:::i;:::-;5358:117;5493:21;5509:4;5493:21;:::i;:::-;5484:30;;5601:1;5590:9;5586:17;5573:31;5631:18;5623:6;5620:30;5617:117;;;5653:79;;:::i;:::-;5617:117;5773:59;5828:3;5819:6;5808:9;5804:22;5773:59;:::i;:::-;5766:4;5759:5;5755:16;5748:85;5524:320;5902:2;5943:49;5988:3;5979:6;5968:9;5964:22;5943:49;:::i;:::-;5936:4;5929:5;5925:16;5918:75;5854:150;5271:740;;;;:::o;6017:533::-;6098:6;6147:2;6135:9;6126:7;6122:23;6118:32;6115:119;;;6153:79;;:::i;:::-;6115:119;6301:1;6290:9;6286:17;6273:31;6331:18;6323:6;6320:30;6317:117;;;6353:79;;:::i;:::-;6317:117;6458:75;6525:7;6516:6;6505:9;6501:22;6458:75;:::i;:::-;6448:85;;6244:299;6017:533;;;;:::o;6556:307::-;6617:4;6707:18;6699:6;6696:30;6693:56;;;6729:18;;:::i;:::-;6693:56;6767:29;6789:6;6767:29;:::i;:::-;6759:37;;6851:4;6845;6841:15;6833:23;;6556:307;;;:::o;6869:410::-;6946:5;6971:65;6987:48;7028:6;6987:48;:::i;:::-;6971:65;:::i;:::-;6962:74;;7059:6;7052:5;7045:21;7097:4;7090:5;7086:16;7135:3;7126:6;7121:3;7117:16;7114:25;7111:112;;;7142:79;;:::i;:::-;7111:112;7232:41;7266:6;7261:3;7256;7232:41;:::i;:::-;6952:327;6869:410;;;;;:::o;7298:338::-;7353:5;7402:3;7395:4;7387:6;7383:17;7379:27;7369:122;;7410:79;;:::i;:::-;7369:122;7527:6;7514:20;7552:78;7626:3;7618:6;7611:4;7603:6;7599:17;7552:78;:::i;:::-;7543:87;;7359:277;7298:338;;;;:::o;7642:126::-;7679:7;7719:42;7712:5;7708:54;7697:65;;7642:126;;;:::o;7774:96::-;7811:7;7840:24;7858:5;7840:24;:::i;:::-;7829:35;;7774:96;;;:::o;7876:122::-;7949:24;7967:5;7949:24;:::i;:::-;7942:5;7939:35;7929:63;;7988:1;7985;7978:12;7929:63;7876:122;:::o;8004:139::-;8050:5;8088:6;8075:20;8066:29;;8104:33;8131:5;8104:33;:::i;:::-;8004:139;;;;:::o;8176:1099::-;8253:5;8297:4;8285:9;8280:3;8276:19;8272:30;8269:117;;;8305:79;;:::i;:::-;8269:117;8404:21;8420:4;8404:21;:::i;:::-;8395:30;;8517:1;8506:9;8502:17;8489:31;8547:18;8539:6;8536:30;8533:117;;;8569:79;;:::i;:::-;8533:117;8689:58;8743:3;8734:6;8723:9;8719:22;8689:58;:::i;:::-;8682:4;8675:5;8671:16;8664:84;8435:324;8820:2;8861:49;8906:3;8897:6;8886:9;8882:22;8861:49;:::i;:::-;8854:4;8847:5;8843:16;8836:75;8769:153;9012:2;9001:9;8997:18;8984:32;9043:18;9035:6;9032:30;9029:117;;;9065:79;;:::i;:::-;9029:117;9185:71;9252:3;9243:6;9232:9;9228:22;9185:71;:::i;:::-;9178:4;9171:5;9167:16;9160:97;8932:336;8176:1099;;;;:::o;9281:545::-;9368:6;9417:2;9405:9;9396:7;9392:23;9388:32;9385:119;;;9423:79;;:::i;:::-;9385:119;9571:1;9560:9;9556:17;9543:31;9601:18;9593:6;9590:30;9587:117;;;9623:79;;:::i;:::-;9587:117;9728:81;9801:7;9792:6;9781:9;9777:22;9728:81;:::i;:::-;9718:91;;9514:305;9281:545;;;;:::o;9832:118::-;9919:24;9937:5;9919:24;:::i;:::-;9914:3;9907:37;9832:118;;:::o;9956:222::-;10049:4;10087:2;10076:9;10072:18;10064:26;;10100:71;10168:1;10157:9;10153:17;10144:6;10100:71;:::i;:::-;9956:222;;;;:::o;10184:99::-;10236:6;10270:5;10264:12;10254:22;;10184:99;;;:::o;10289:169::-;10373:11;10407:6;10402:3;10395:19;10447:4;10442:3;10438:14;10423:29;;10289:169;;;;:::o;10464:307::-;10532:1;10542:113;10556:6;10553:1;10550:13;10542:113;;;10641:1;10636:3;10632:11;10626:18;10622:1;10617:3;10613:11;10606:39;10578:2;10575:1;10571:10;10566:15;;10542:113;;;10673:6;10670:1;10667:13;10664:101;;;10753:1;10744:6;10739:3;10735:16;10728:27;10664:101;10513:258;10464:307;;;:::o;10777:364::-;10865:3;10893:39;10926:5;10893:39;:::i;:::-;10948:71;11012:6;11007:3;10948:71;:::i;:::-;10941:78;;11028:52;11073:6;11068:3;11061:4;11054:5;11050:16;11028:52;:::i;:::-;11105:29;11127:6;11105:29;:::i;:::-;11100:3;11096:39;11089:46;;10869:272;10777:364;;;;:::o;11147:118::-;11234:24;11252:5;11234:24;:::i;:::-;11229:3;11222:37;11147:118;;:::o;11271:735::-;11488:4;11526:3;11515:9;11511:19;11503:27;;11540:71;11608:1;11597:9;11593:17;11584:6;11540:71;:::i;:::-;11658:9;11652:4;11648:20;11643:2;11632:9;11628:18;11621:48;11686:78;11759:4;11750:6;11686:78;:::i;:::-;11678:86;;11811:9;11805:4;11801:20;11796:2;11785:9;11781:18;11774:48;11839:78;11912:4;11903:6;11839:78;:::i;:::-;11831:86;;11927:72;11995:2;11984:9;11980:18;11971:6;11927:72;:::i;:::-;11271:735;;;;;;;:::o;12012:533::-;12181:4;12219:2;12208:9;12204:18;12196:26;;12232:71;12300:1;12289:9;12285:17;12276:6;12232:71;:::i;:::-;12350:9;12344:4;12340:20;12335:2;12324:9;12320:18;12313:48;12378:78;12451:4;12442:6;12378:78;:::i;:::-;12370:86;;12466:72;12534:2;12523:9;12519:18;12510:6;12466:72;:::i;:::-;12012:533;;;;;;:::o;12551:148::-;12653:11;12690:3;12675:18;;12551:148;;;;:::o;12705:214::-;12845:66;12841:1;12833:6;12829:14;12822:90;12705:214;:::o;12925:400::-;13085:3;13106:84;13188:1;13183:3;13106:84;:::i;:::-;13099:91;;13199:93;13288:3;13199:93;:::i;:::-;13317:1;13312:3;13308:11;13301:18;;12925:400;;;:::o;13331:79::-;13370:7;13399:5;13388:16;;13331:79;;;:::o;13416:157::-;13521:45;13541:24;13559:5;13541:24;:::i;:::-;13521:45;:::i;:::-;13516:3;13509:58;13416:157;;:::o;13579:663::-;13820:3;13842:148;13986:3;13842:148;:::i;:::-;13835:155;;14000:75;14071:3;14062:6;14000:75;:::i;:::-;14100:2;14095:3;14091:12;14084:19;;14113:75;14184:3;14175:6;14113:75;:::i;:::-;14213:2;14208:3;14204:12;14197:19;;14233:3;14226:10;;13579:663;;;;;:::o;14248:98::-;14299:6;14333:5;14327:12;14317:22;;14248:98;;;:::o;14352:168::-;14435:11;14469:6;14464:3;14457:19;14509:4;14504:3;14500:14;14485:29;;14352:168;;;;:::o;14526:360::-;14612:3;14640:38;14672:5;14640:38;:::i;:::-;14694:70;14757:6;14752:3;14694:70;:::i;:::-;14687:77;;14773:52;14818:6;14813:3;14806:4;14799:5;14795:16;14773:52;:::i;:::-;14850:29;14872:6;14850:29;:::i;:::-;14845:3;14841:39;14834:46;;14616:270;14526:360;;;;:::o;14892:419::-;15031:4;15069:2;15058:9;15054:18;15046:26;;15082:71;15150:1;15139:9;15135:17;15126:6;15082:71;:::i;:::-;15200:9;15194:4;15190:20;15185:2;15174:9;15170:18;15163:48;15228:76;15299:4;15290:6;15228:76;:::i;:::-;15220:84;;14892:419;;;;;:::o;15317:149::-;15353:7;15393:66;15386:5;15382:78;15371:89;;15317:149;;;:::o;15472:120::-;15544:23;15561:5;15544:23;:::i;:::-;15537:5;15534:34;15524:62;;15582:1;15579;15572:12;15524:62;15472:120;:::o;15598:141::-;15654:5;15685:6;15679:13;15670:22;;15701:32;15727:5;15701:32;:::i;:::-;15598:141;;;;:::o;15745:349::-;15814:6;15863:2;15851:9;15842:7;15838:23;15834:32;15831:119;;;15869:79;;:::i;:::-;15831:119;15989:1;16014:63;16069:7;16060:6;16049:9;16045:22;16014:63;:::i;:::-;16004:73;;15960:127;15745:349;;;;:::o;16100:167::-;16240:19;16236:1;16228:6;16224:14;16217:43;16100:167;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:86::-;17105:7;17145:4;17138:5;17134:16;17123:27;;17070:86;;;:::o;17162:180::-;17210:77;17207:1;17200:88;17307:4;17304:1;17297:15;17331:4;17328:1;17321:15;17348:237;17386:3;17405:18;17421:1;17405:18;:::i;:::-;17400:23;;17437:18;17453:1;17437:18;:::i;:::-;17432:23;;17527:1;17521:4;17517:12;17514:1;17511:19;17508:45;;;17533:18;;:::i;:::-;17508:45;17577:1;17574;17570:9;17563:16;;17348:237;;;;:::o;17591:112::-;17674:22;17690:5;17674:22;:::i;:::-;17669:3;17662:35;17591:112;;:::o;17709:545::-;17882:4;17920:3;17909:9;17905:19;17897:27;;17934:71;18002:1;17991:9;17987:17;17978:6;17934:71;:::i;:::-;18015:68;18079:2;18068:9;18064:18;18055:6;18015:68;:::i;:::-;18093:72;18161:2;18150:9;18146:18;18137:6;18093:72;:::i;:::-;18175;18243:2;18232:9;18228:18;18219:6;18175:72;:::i;:::-;17709:545;;;;;;;:::o"},"methodIdentifiers":{"GET_EIP712DOMAIN_PACKETHASH((string,string,uint256))":"4bc39162","GET_PERSON_PACKETHASH((string,uint256))":"8f4f876a","getDomainHash()":"83ebb771","verifySignedPerson((bytes,address,(string,uint256)))":"ea23cf6e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct EIP712Domain\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_EIP712DOMAIN_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_PERSON_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"message\",\"type\":\"tuple\"}],\"internalType\":\"struct signedPerson\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"verifySignedPerson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MockEIP712Decoder.sol\":\"MockEIP712Decoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]},\"contracts/MockEIP712Decoder.sol\":{\"keccak256\":\"0x337673bb165b161a4dc3c06a7260a7720154bc7f3599a48474f42ef2d3e641cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://401d1890f9ea5c28e7ae1fbb5866d8e95124ee35a0f19b554ef4fb9d5abdaeff\",\"dweb:/ipfs/QmUQpn7Xrjq5jfWkSpuYRDEQ6zjNpDtHFEeLpQH8gJkuQJ\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.dbg.json b/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.dbg.json new file mode 100644 index 0000000..50f6bf7 --- /dev/null +++ b/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/21fa6fc66024836561f3d36a91b0eddc.json" +} diff --git a/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.json b/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.json new file mode 100644 index 0000000..b38fc99 --- /dev/null +++ b/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.json @@ -0,0 +1,139 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "EIP712Decoder", + "sourceName": "contracts/EIP712Decoder.sol", + "abi": [ + { + "inputs": [ + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "internalType": "struct EIP712Domain", + "name": "_input", + "type": "tuple" + } + ], + "name": "GET_EIP712DOMAIN_PACKETHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "age", + "type": "uint256" + } + ], + "internalType": "struct Person", + "name": "_input", + "type": "tuple" + } + ], + "name": "GET_PERSON_PACKETHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getDomainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "age", + "type": "uint256" + } + ], + "internalType": "struct Person", + "name": "message", + "type": "tuple" + } + ], + "internalType": "struct signedPerson", + "name": "_input", + "type": "tuple" + } + ], + "name": "verifySignedPerson", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.dbg.json b/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.dbg.json new file mode 100644 index 0000000..50f6bf7 --- /dev/null +++ b/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/21fa6fc66024836561f3d36a91b0eddc.json" +} diff --git a/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.json b/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.json new file mode 100644 index 0000000..b5b8a84 --- /dev/null +++ b/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.json @@ -0,0 +1,35 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC1271Contract", + "sourceName": "contracts/EIP712Decoder.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_hash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_signature", + "type": "bytes" + } + ], + "name": "isValidSignature", + "outputs": [ + { + "internalType": "bytes4", + "name": "magicValue", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json new file mode 100644 index 0000000..4129a3e --- /dev/null +++ b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/1c3c8280f8c7e292e7e737090d74a297.json" +} diff --git a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json new file mode 100644 index 0000000..b321d9d --- /dev/null +++ b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json @@ -0,0 +1,150 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MockEIP712Decoder", + "sourceName": "contracts/MockEIP712Decoder.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "internalType": "struct EIP712Domain", + "name": "_input", + "type": "tuple" + } + ], + "name": "GET_EIP712DOMAIN_PACKETHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "age", + "type": "uint256" + } + ], + "internalType": "struct Person", + "name": "_input", + "type": "tuple" + } + ], + "name": "GET_PERSON_PACKETHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getDomainHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "age", + "type": "uint256" + } + ], + "internalType": "struct Person", + "name": "message", + "type": "tuple" + } + ], + "internalType": "struct signedPerson", + "name": "_input", + "type": "tuple" + } + ], + "name": "verifySignedPerson", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040516200105b3803806200105b83398181016040528101906200003791906200014d565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e6040518060400160405280601181526020017f4d6f636b4549503731324465636f646572000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001620000ea959493929190620001f0565b60405160208183030381529060405280519060200120600081905550506200024d565b600080fd5b6000819050919050565b620001278162000112565b81146200013357600080fd5b50565b60008151905062000147816200011c565b92915050565b6000602082840312156200016657620001656200010d565b5b6000620001768482850162000136565b91505092915050565b6000819050919050565b62000194816200017f565b82525050565b620001a58162000112565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001d882620001ab565b9050919050565b620001ea81620001cb565b82525050565b600060a08201905062000207600083018862000189565b62000216602083018762000189565b62000225604083018662000189565b6200023460608301856200019a565b620002436080830184620001df565b9695505050505050565b610dfe806200025d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220ca0a05a510565d9ee49471de5fd24a13ae81e1ff3aee845a020d6cb87285bdc764736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220ca0a05a510565d9ee49471de5fd24a13ae81e1ff3aee845a020d6cb87285bdc764736f6c634300080d0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/contracts/EIP712Decoder.sol b/contracts/EIP712Decoder.sol index c546726..27ebf72 100644 --- a/contracts/EIP712Decoder.sol +++ b/contracts/EIP712Decoder.sol @@ -26,7 +26,7 @@ struct Person { bytes32 constant PERSON_TYPEHASH = keccak256("Person(string name,uint256 age)"); -contract ERC1271Contract { +abstract contract ERC1271Contract { // bytes4(keccak256("isValidSignature(bytes32,bytes)") bytes4 constant internal MAGICVALUE = 0x1626ba7e; @@ -45,10 +45,12 @@ contract ERC1271Contract { bytes memory _signature) public view + virtual returns (bytes4 magicValue); } -contract EIP712Decoder { +abstract contract EIP712Decoder { + function getDomainHash () public view virtual returns (bytes32); /** * @dev Recover signer address from a message by using their signature @@ -112,7 +114,7 @@ contract EIP712Decoder { bytes32 digest = keccak256( abi.encodePacked( "\x19\x01", - domainHash, + getDomainHash(), packetHash ) ); diff --git a/contracts/MockEIP712Decoder.sol b/contracts/MockEIP712Decoder.sol new file mode 100644 index 0000000..e719bae --- /dev/null +++ b/contracts/MockEIP712Decoder.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.13; + +import "./EIP712Decoder.sol"; + +contract MockEIP712Decoder is EIP712Decoder { + bytes32 domainHash; + constructor(uint256 chainId) { + domainHash = keccak256(abi.encode( + EIP712DOMAIN_TYPEHASH, + keccak256(bytes("MockEIP712Decoder")), + keccak256(bytes("1")), + uint256(chainId), + address(this) + )); + } + + function getDomainHash () public view override returns (bytes32) { + return domainHash; + } +} diff --git a/index.js b/index.js index 5942832..264b75e 100644 --- a/index.js +++ b/index.js @@ -29,7 +29,7 @@ var path = require('path'); var encodeType = require('signtypeddata-v5').TypedDataUtils.encodeType; var generateFile = function (types, methods, log) { if (log === void 0) { log = false; } - return "pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n".concat(log ? 'import "hardhat/console.log";' : '', "\n\n").concat(types, "\n\ncontract ERC1271Contract {\n\n // bytes4(keccak256(\"isValidSignature(bytes32,bytes)\")\n bytes4 constant internal MAGICVALUE = 0x1626ba7e;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n returns (bytes4 magicValue);\n}\n\ncontract EIP712Decoder {\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n").concat(methods, "\n\n}\n\n"); + return "pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n".concat(log ? 'import "hardhat/console.log";' : '', "\n\n").concat(types, "\n\nabstract contract ERC1271Contract {\n\n // bytes4(keccak256(\"isValidSignature(bytes32,bytes)\")\n bytes4 constant internal MAGICVALUE = 0x1626ba7e;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n virtual\n returns (bytes4 magicValue);\n}\n\nabstract contract EIP712Decoder {\n function getDomainHash () public view virtual returns (bytes32);\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n").concat(methods, "\n\n}\n\n"); }; var LOGGING_ENABLED = false; function generateCodeFrom(types, entryTypes) { @@ -103,7 +103,7 @@ function generateSolidity(typeDef, shouldLog, entryTypes) { return newFileString; } function generateEntrypointMethods(entryTypes) { - return entryTypes.map(function (entryType) { return "\n function verifySigned".concat(entryType, "(signed").concat(entryType, " memory _input) public view returns (address) {\n bytes32 packetHash = ").concat(packetHashGetterName(entryType), "(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n domainHash,\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n "); }).join('\n'); + return entryTypes.map(function (entryType) { return "\n function verifySigned".concat(entryType, "(signed").concat(entryType, " memory _input) public view returns (address) {\n bytes32 packetHash = ").concat(packetHashGetterName(entryType), "(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainHash(),\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n "); }).join('\n'); } module.exports = { generateCodeFrom: generateCodeFrom, diff --git a/index.ts b/index.ts index 7d9110d..854da60 100644 --- a/index.ts +++ b/index.ts @@ -49,7 +49,7 @@ ${log ? 'import "hardhat/console.log";' : ''} ${types} -contract ERC1271Contract { +abstract contract ERC1271Contract { // bytes4(keccak256("isValidSignature(bytes32,bytes)") bytes4 constant internal MAGICVALUE = 0x1626ba7e; @@ -68,10 +68,12 @@ contract ERC1271Contract { bytes memory _signature) public view + virtual returns (bytes4 magicValue); } -contract EIP712Decoder { +abstract contract EIP712Decoder { + function getDomainHash () public view virtual returns (bytes32); /** * @dev Recover signer address from a message by using their signature @@ -244,7 +246,7 @@ function generateEntrypointMethods(entryTypes) { bytes32 digest = keccak256( abi.encodePacked( "\\x19\\x01", - domainHash, + getDomainHash(), packetHash ) ); diff --git a/package-lock.json b/package-lock.json index 31eb060..9889211 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@openzeppelin/test-environment": "^0.1.9", "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", + "eth-sig-util": "^3.0.1", "ethers": "^5.7.2", "ganache-cli": "^6.12.2", "hardhat": "^2.13.0", @@ -3697,6 +3698,34 @@ "ultron": "~1.1.0" } }, + "node_modules/eth-sig-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", + "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", + "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'", + "dev": true, + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" + } + }, + "node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, "node_modules/ethereum-bloom-filters": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", @@ -22124,6 +22153,35 @@ } } }, + "eth-sig-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz", + "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==", + "dev": true, + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, "ethereum-bloom-filters": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", diff --git a/package.json b/package.json index db977b1..5131a65 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "@openzeppelin/test-environment": "^0.1.9", "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.7", + "eth-sig-util": "^3.0.1", "ethers": "^5.7.2", "ganache-cli": "^6.12.2", "hardhat": "^2.13.0", diff --git a/test.js b/test.js index 5b62986..e9e3578 100644 --- a/test.js +++ b/test.js @@ -4,6 +4,10 @@ const ethers = require('ethers'); const testEnv = require('@openzeppelin/test-environment'); const testContract = testEnv.contract; const { deploy } = testEnv; +const sigUtil = require('@metamask/eth-sig-util'); +const { + TypedDataUtils, +} = sigUtil; const hre = require('hardhat'); // Import the generateSolidity function from the module @@ -42,27 +46,31 @@ const solidityCode = generateSolidity(message, false, entryTypes); // Write the Solidity code to a file (for testing purposes) const fs = require('fs'); -fs.writeFileSync('contracts/EIP712Decoder.sol', solidityCode); +fs.writeFileSync('./contracts/EIP712Decoder.sol', solidityCode); // Run the tests describe('EIP712Decoder', function () { - let contract, accounts, signer, typedData; + let contract, accounts, signer, typedData, eip712Decoder, privateKey; before(async function () { // Compile the contract using Hardhat await hre.run('compile'); // Set up a ganache provider with the generated Solidity code - const provider = new ethers.providers.Web3Provider(ganache.provider({})); + const ganacheProvider = ganache.provider({}) + const provider = new ethers.providers.Web3Provider(ganacheProvider); + const mnemonic = ganacheProvider.options.mnemonic; + const wallet = ethers.Wallet.fromMnemonic(mnemonic); + privateKey = wallet.privateKey; accounts = await provider.listAccounts(); signer = provider.getSigner(accounts[0]); - // Load the compiled contract artifact - const EIP712Decoder = await hre.artifacts.readArtifact('EIP712Decoder'); + // Load up the compiled contract artifact + const EIP712Decoder = await hre.artifacts.readArtifact('MockEIP712Decoder'); // Deploy the contract const EIP712DecoderFactory = new ethers.ContractFactory(EIP712Decoder.abi, EIP712Decoder.bytecode, signer); - contract = await EIP712DecoderFactory.deploy(); + contract = await EIP712DecoderFactory.deploy([1]); await contract.deployed(); // Create the typed data for testing @@ -71,18 +79,46 @@ describe('EIP712Decoder', function () { }); it('should recover the correct signer', async function () { - // Sign the typed data - const signature = await signer._signTypedData(typedData.domain, typedData.types, typedData.message); - const sigBytes = ethers.utils.arrayify(signature); + const signedStruct = signStruct(privateKey); // Call the verifySignedPerson function - const isValid = await contract.verifySignedPerson({ - signature: sigBytes, - signer: accounts[0], - message: typedData.message, - }); + const isValid = await contract.verifySignedPerson(signedStruct); // Check if the signer is valid - expect(isValid).to.be.true; + expect(isValid).to.equal(accounts[0]); }); }); + +function signStruct (privateKey) { + console.dir(privateKey); + const signature = sigUtil.signTypedData({ + privateKey: fromHexString(privateKey.indexOf('0x') === 0 ? privateKey.substring(2) : privateKey), + data: message, + version: 'V4', + }); + + const signedStruct = { + signature, + signer: '0x0000000000000000000000000000000000000000', + message: message.message, + } + + return signedStruct; +} + +function fromHexString (_hexString) { + const hexString = _hexString.toLowerCase(); + console.dir(hexString) + if (!hexString || typeof hexString !== 'string') { + throw new Error('Expected a hex string.'); + } + const matched = hexString.match(/.{1,2}/g) + if (!matched) { + throw new Error('Expected a hex string.'); + } + const mapped = matched.map(byte => parseInt(byte, 16)); + if (!mapped || mapped.length !== 32) { + throw new Error('Expected a hex string.'); + } + return new Uint8Array(mapped); +} \ No newline at end of file From de76cb8ae3a610ea33c12e4a483634dc702459be Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 17:13:38 -0700 Subject: [PATCH 12/19] Get artifacts out of git --- .gitignore | 1 + artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json | 1 - .../MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json | 2 +- .../contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json diff --git a/.gitignore b/.gitignore index 5b6cb77..b5ddc3e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ .DS_Store cache/ +artifacts/ diff --git a/artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json b/artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json deleted file mode 100644 index 2b7ba27..0000000 --- a/artifacts/build-info/1c3c8280f8c7e292e7e737090d74a297.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"1c3c8280f8c7e292e7e737090d74a297","_format":"hh-sol-build-info-1","solcVersion":"0.8.13","solcLongVersion":"0.8.13+commit.abaa5c0e","input":{"language":"Solidity","sources":{"contracts/EIP712Decoder.sol":{"content":"pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n\n\nstruct EIP712Domain {\n string name;\n string version;\n uint256 chainId;\n}\n\nbytes32 constant EIP712DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,string version,uint256 chainId)\");\n\n\nstruct signedPerson {\n bytes signature;\n address signer;\n Person message;\n}\n\n\nstruct Person {\n string name;\n uint256 age;\n}\n\nbytes32 constant PERSON_TYPEHASH = keccak256(\"Person(string name,uint256 age)\");\n\n\nabstract contract ERC1271Contract {\n\n // bytes4(keccak256(\"isValidSignature(bytes32,bytes)\")\n bytes4 constant internal MAGICVALUE = 0x1626ba7e;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n virtual\n returns (bytes4 magicValue);\n}\n\nabstract contract EIP712Decoder {\n function getDomainHash () public view virtual returns (bytes32);\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n\n function GET_EIP712DOMAIN_PACKETHASH (EIP712Domain memory _input) public pure returns (bytes32) {\n \n bytes memory encoded = abi.encode(\n EIP712DOMAIN_TYPEHASH,\n _input.name,\n _input.version,\n _input.chainId\n );\n \n return keccak256(encoded);\n }\n\n function GET_PERSON_PACKETHASH (Person memory _input) public pure returns (bytes32) {\n \n bytes memory encoded = abi.encode(\n PERSON_TYPEHASH,\n _input.name,\n _input.age\n );\n \n return keccak256(encoded);\n }\n\n function verifySignedPerson(signedPerson memory _input) public view returns (address) {\n bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainHash(),\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n \n\n}\n\n"},"contracts/MockEIP712Decoder.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.13;\n\nimport \"./EIP712Decoder.sol\";\n\ncontract MockEIP712Decoder is EIP712Decoder {\n bytes32 domainHash;\n constructor(uint256 chainId) {\n domainHash = keccak256(abi.encode(\n EIP712DOMAIN_TYPEHASH,\n keccak256(bytes(\"MockEIP712Decoder\")),\n keccak256(bytes(\"1\")),\n uint256(chainId),\n address(this)\n ));\n }\n\n function getDomainHash () public view override returns (bytes32) {\n return domainHash;\n }\n}\n"}},"settings":{"optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/EIP712Decoder.sol":{"ast":{"absolutePath":"contracts/EIP712Decoder.sol","exportedSymbols":{"EIP712DOMAIN_TYPEHASH":[13],"EIP712Decoder":[233],"EIP712Domain":[8],"ERC1271Contract":[45],"PERSON_TYPEHASH":[31],"Person":[26],"signedPerson":[21]},"id":234,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".13"],"nodeType":"PragmaDirective","src":"0:24:0"},{"canonicalName":"EIP712Domain","id":8,"members":[{"constant":false,"id":3,"mutability":"mutable","name":"name","nameLocation":"90:4:0","nodeType":"VariableDeclaration","scope":8,"src":"83:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2,"name":"string","nodeType":"ElementaryTypeName","src":"83:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"version","nameLocation":"105:7:0","nodeType":"VariableDeclaration","scope":8,"src":"98:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4,"name":"string","nodeType":"ElementaryTypeName","src":"98:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"chainId","nameLocation":"124:7:0","nodeType":"VariableDeclaration","scope":8,"src":"116:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"116:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"EIP712Domain","nameLocation":"66:12:0","nodeType":"StructDefinition","scope":234,"src":"59:75:0","visibility":"public"},{"constant":true,"id":13,"mutability":"constant","name":"EIP712DOMAIN_TYPEHASH","nameLocation":"153:21:0","nodeType":"VariableDeclaration","scope":234,"src":"136:110:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e496429","id":11,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"187:58:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""},"value":"EIP712Domain(string name,string version,uint256 chainId)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""}],"id":10,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"177:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"177:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"canonicalName":"signedPerson","id":21,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"signature","nameLocation":"280:9:0","nodeType":"VariableDeclaration","scope":21,"src":"274:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":14,"name":"bytes","nodeType":"ElementaryTypeName","src":"274:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"signer","nameLocation":"301:6:0","nodeType":"VariableDeclaration","scope":21,"src":"293:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"message","nameLocation":"318:7:0","nodeType":"VariableDeclaration","scope":21,"src":"311:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"},"typeName":{"id":19,"nodeType":"UserDefinedTypeName","pathNode":{"id":18,"name":"Person","nodeType":"IdentifierPath","referencedDeclaration":26,"src":"311:6:0"},"referencedDeclaration":26,"src":"311:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"}},"visibility":"internal"}],"name":"signedPerson","nameLocation":"257:12:0","nodeType":"StructDefinition","scope":234,"src":"250:78:0","visibility":"public"},{"canonicalName":"Person","id":26,"members":[{"constant":false,"id":23,"mutability":"mutable","name":"name","nameLocation":"356:4:0","nodeType":"VariableDeclaration","scope":26,"src":"349:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22,"name":"string","nodeType":"ElementaryTypeName","src":"349:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"age","nameLocation":"372:3:0","nodeType":"VariableDeclaration","scope":26,"src":"364:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Person","nameLocation":"338:6:0","nodeType":"StructDefinition","scope":234,"src":"331:47:0","visibility":"public"},{"constant":true,"id":31,"mutability":"constant","name":"PERSON_TYPEHASH","nameLocation":"397:15:0","nodeType":"VariableDeclaration","scope":234,"src":"380:79:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27,"name":"bytes32","nodeType":"ElementaryTypeName","src":"380:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"506572736f6e28737472696e67206e616d652c75696e743235362061676529","id":29,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"425:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db","typeString":"literal_string \"Person(string name,uint256 age)\""},"value":"Person(string name,uint256 age)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db","typeString":"literal_string \"Person(string name,uint256 age)\""}],"id":28,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"415:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":30,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"415:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1271Contract","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":45,"linearizedBaseContracts":[45],"name":"ERC1271Contract","nameLocation":"481:15:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":34,"mutability":"constant","name":"MAGICVALUE","nameLocation":"584:10:0","nodeType":"VariableDeclaration","scope":45,"src":"559:48:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32,"name":"bytes4","nodeType":"ElementaryTypeName","src":"559:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783136323662613765","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"597:10:0","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"visibility":"internal"},{"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"612:414:0","text":" @dev Should return whether the signature provided is valid for the provided hash\n @param _hash Hash of the data to be signed\n @param _signature Signature byte array associated with _hash\n MUST return the bytes4 magic value 0x1626ba7e when function passes.\n MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n MUST allow external calls"},"functionSelector":"1626ba7e","id":44,"implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"1039:16:0","nodeType":"FunctionDefinition","parameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37,"mutability":"mutable","name":"_hash","nameLocation":"1069:5:0","nodeType":"VariableDeclaration","scope":44,"src":"1061:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1061:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39,"mutability":"mutable","name":"_signature","nameLocation":"1094:10:0","nodeType":"VariableDeclaration","scope":44,"src":"1081:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38,"name":"bytes","nodeType":"ElementaryTypeName","src":"1081:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1055:50:0"},"returnParameters":{"id":43,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42,"mutability":"mutable","name":"magicValue","nameLocation":"1159:10:0","nodeType":"VariableDeclaration","scope":44,"src":"1152:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1152:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1151:19:0"},"scope":45,"src":"1030:141:0","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":234,"src":"463:710:0","usedErrors":[]},{"abstract":true,"baseContracts":[],"canonicalName":"EIP712Decoder","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":233,"linearizedBaseContracts":[233],"name":"EIP712Decoder","nameLocation":"1193:13:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"83ebb771","id":50,"implemented":false,"kind":"function","modifiers":[],"name":"getDomainHash","nameLocation":"1220:13:0","nodeType":"FunctionDefinition","parameters":{"id":46,"nodeType":"ParameterList","parameters":[],"src":"1234:2:0"},"returnParameters":{"id":49,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50,"src":"1266:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1266:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1265:9:0"},"scope":233,"src":"1211:64:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":114,"nodeType":"Block","src":"1630:621:0","statements":[{"assignments":[61],"declarations":[{"constant":false,"id":61,"mutability":"mutable","name":"r","nameLocation":"1644:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1636:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1636:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":62,"nodeType":"VariableDeclarationStatement","src":"1636:9:0"},{"assignments":[64],"declarations":[{"constant":false,"id":64,"mutability":"mutable","name":"s","nameLocation":"1659:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1651:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":63,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1651:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":65,"nodeType":"VariableDeclarationStatement","src":"1651:9:0"},{"assignments":[67],"declarations":[{"constant":false,"id":67,"mutability":"mutable","name":"v","nameLocation":"1672:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1666:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":66,"name":"uint8","nodeType":"ElementaryTypeName","src":"1666:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":68,"nodeType":"VariableDeclarationStatement","src":"1666:7:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":69,"name":"sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55,"src":"1718:3:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1718:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3635","id":71,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1732:2:0","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"1718:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80,"nodeType":"IfStatement","src":"1714:56:0","trueBody":{"id":79,"nodeType":"Block","src":"1736:34:0","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":75,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1760:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1752:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1752:7:0","typeDescriptions":{}}},"id":76,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1752:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":77,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1751:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":78,"nodeType":"Return","src":"1744:19:0"}]}},{"AST":{"nodeType":"YulBlock","src":"1837:109:0","statements":[{"nodeType":"YulAssignment","src":"1845:24:0","value":{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1860:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1865:2:0","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1856:3:0"},"nodeType":"YulFunctionCall","src":"1856:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1850:5:0"},"nodeType":"YulFunctionCall","src":"1850:19:0"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1845:1:0"}]},{"nodeType":"YulAssignment","src":"1876:24:0","value":{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1891:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1896:2:0","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1887:3:0"},"nodeType":"YulFunctionCall","src":"1887:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1881:5:0"},"nodeType":"YulFunctionCall","src":"1881:19:0"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"1876:1:0"}]},{"nodeType":"YulAssignment","src":"1907:33:0","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1917:1:0","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1930:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1935:2:0","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1926:3:0"},"nodeType":"YulFunctionCall","src":"1926:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1920:5:0"},"nodeType":"YulFunctionCall","src":"1920:19:0"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1912:4:0"},"nodeType":"YulFunctionCall","src":"1912:28:0"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"1907:1:0"}]}]},"evmVersion":"london","externalReferences":[{"declaration":61,"isOffset":false,"isSlot":false,"src":"1845:1:0","valueSize":1},{"declaration":64,"isOffset":false,"isSlot":false,"src":"1876:1:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1860:3:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1891:3:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1930:3:0","valueSize":1},{"declaration":67,"isOffset":false,"isSlot":false,"src":"1907:1:0","valueSize":1}],"id":81,"nodeType":"InlineAssembly","src":"1828:118:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":84,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2042:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3237","id":83,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2042:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":90,"nodeType":"IfStatement","src":"2038:34:0","trueBody":{"id":89,"nodeType":"Block","src":"2050:22:0","statements":[{"expression":{"id":87,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2058:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3237","id":86,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2063:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2058:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":88,"nodeType":"ExpressionStatement","src":"2058:7:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":97,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":93,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2141:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3237","id":92,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2146:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2141:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":96,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":94,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2152:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3238","id":95,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"2152:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2141:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":112,"nodeType":"Block","src":"2201:46:0","statements":[{"expression":{"arguments":[{"id":106,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"2226:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":107,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2232:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":108,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"2235:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"2238:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":105,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"2216:9:0","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2216:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":111,"nodeType":"Return","src":"2209:31:0"}]},"id":113,"nodeType":"IfStatement","src":"2137:110:0","trueBody":{"id":104,"nodeType":"Block","src":"2161:34:0","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2185:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":99,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2177:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:0","typeDescriptions":{}}},"id":101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2177:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":102,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2176:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":103,"nodeType":"Return","src":"2169:19:0"}]}}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1279:267:0","text":" @dev Recover signer address from a message by using their signature\n @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n @param sig bytes signature, the signature is generated using web3.eth.sign()"},"id":115,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"1558:7:0","nodeType":"FunctionDefinition","parameters":{"id":56,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53,"mutability":"mutable","name":"hash","nameLocation":"1574:4:0","nodeType":"VariableDeclaration","scope":115,"src":"1566:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1566:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55,"mutability":"mutable","name":"sig","nameLocation":"1593:3:0","nodeType":"VariableDeclaration","scope":115,"src":"1580:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1565:32:0"},"returnParameters":{"id":59,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":115,"src":"1621:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57,"name":"address","nodeType":"ElementaryTypeName","src":"1621:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1620:9:0"},"scope":233,"src":"1549:702:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":140,"nodeType":"Block","src":"2351:183:0","statements":[{"assignments":[124],"declarations":[{"constant":false,"id":124,"mutability":"mutable","name":"encoded","nameLocation":"2375:7:0","nodeType":"VariableDeclaration","scope":140,"src":"2362:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":123,"name":"bytes","nodeType":"ElementaryTypeName","src":"2362:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":135,"initialValue":{"arguments":[{"id":127,"name":"EIP712DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"2403:21:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":128,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2432:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":3,"src":"2432:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":130,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2451:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":5,"src":"2451:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":132,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2473:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":7,"src":"2473:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2385:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2385:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2385:108:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2362:131:0"},{"expression":{"arguments":[{"id":137,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"2521:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":136,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2511:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2511:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":122,"id":139,"nodeType":"Return","src":"2504:25:0"}]},"functionSelector":"4bc39162","id":141,"implemented":true,"kind":"function","modifiers":[],"name":"GET_EIP712DOMAIN_PACKETHASH","nameLocation":"2264:27:0","nodeType":"FunctionDefinition","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"_input","nameLocation":"2313:6:0","nodeType":"VariableDeclaration","scope":141,"src":"2293:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain"},"typeName":{"id":117,"nodeType":"UserDefinedTypeName","pathNode":{"id":116,"name":"EIP712Domain","nodeType":"IdentifierPath","referencedDeclaration":8,"src":"2293:12:0"},"referencedDeclaration":8,"src":"2293:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_storage_ptr","typeString":"struct EIP712Domain"}},"visibility":"internal"}],"src":"2292:28:0"},"returnParameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":141,"src":"2342:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2342:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2341:9:0"},"scope":233,"src":"2255:279:0","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":164,"nodeType":"Block","src":"2622:151:0","statements":[{"assignments":[150],"declarations":[{"constant":false,"id":150,"mutability":"mutable","name":"encoded","nameLocation":"2646:7:0","nodeType":"VariableDeclaration","scope":164,"src":"2633:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":149,"name":"bytes","nodeType":"ElementaryTypeName","src":"2633:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":159,"initialValue":{"arguments":[{"id":153,"name":"PERSON_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"2674:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":154,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2697:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}},"id":155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":23,"src":"2697:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":156,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2716:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}},"id":157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"age","nodeType":"MemberAccess","referencedDeclaration":25,"src":"2716:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2656:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2656:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2656:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2633:99:0"},{"expression":{"arguments":[{"id":161,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"2760:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":160,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2750:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2750:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":148,"id":163,"nodeType":"Return","src":"2743:25:0"}]},"functionSelector":"8f4f876a","id":165,"implemented":true,"kind":"function","modifiers":[],"name":"GET_PERSON_PACKETHASH","nameLocation":"2547:21:0","nodeType":"FunctionDefinition","parameters":{"id":145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":144,"mutability":"mutable","name":"_input","nameLocation":"2584:6:0","nodeType":"VariableDeclaration","scope":165,"src":"2570:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person"},"typeName":{"id":143,"nodeType":"UserDefinedTypeName","pathNode":{"id":142,"name":"Person","nodeType":"IdentifierPath","referencedDeclaration":26,"src":"2570:6:0"},"referencedDeclaration":26,"src":"2570:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"}},"visibility":"internal"}],"src":"2569:22:0"},"returnParameters":{"id":148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":165,"src":"2613:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2613:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2612:9:0"},"scope":233,"src":"2538:235:0","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":231,"nodeType":"Block","src":"2865:682:0","statements":[{"assignments":[174],"declarations":[{"constant":false,"id":174,"mutability":"mutable","name":"packetHash","nameLocation":"2881:10:0","nodeType":"VariableDeclaration","scope":231,"src":"2873:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2873:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":179,"initialValue":{"arguments":[{"expression":{"id":176,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2916:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"message","nodeType":"MemberAccess","referencedDeclaration":20,"src":"2916:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}],"id":175,"name":"GET_PERSON_PACKETHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"2894:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Person_$26_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Person memory) pure returns (bytes32)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2894:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2873:58:0"},{"assignments":[181],"declarations":[{"constant":false,"id":181,"mutability":"mutable","name":"digest","nameLocation":"2947:6:0","nodeType":"VariableDeclaration","scope":231,"src":"2939:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2939:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":191,"initialValue":{"arguments":[{"arguments":[{"hexValue":"1901","id":185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3003:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":186,"name":"getDomainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50,"src":"3025:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3025:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":188,"name":"packetHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"3052:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2975:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2975:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2975:97:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":182,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2956:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2956:124:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2939:141:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":192,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3093:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3093:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030","id":194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000000"},"src":"3093:59:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":229,"nodeType":"Block","src":"3300:241:0","statements":[{"assignments":[208],"declarations":[{"constant":false,"id":208,"mutability":"mutable","name":"result","nameLocation":"3360:6:0","nodeType":"VariableDeclaration","scope":229,"src":"3353:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":207,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3353:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":218,"initialValue":{"arguments":[{"id":214,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"3417:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":215,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3425:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":15,"src":"3425:16:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":210,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3385:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3385:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":209,"name":"ERC1271Contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"3369:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1271Contract_$45_$","typeString":"type(contract ERC1271Contract)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3369:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC1271Contract_$45","typeString":"contract ERC1271Contract"}},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":44,"src":"3369:47:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes32,bytes memory) view external returns (bytes4)"}},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3369:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3353:89:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":220,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3460:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783136323662613765","id":221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3470:10:0","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"src":"3460:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4154555245","id":223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3482:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""},"value":"INVALID_SIGNATURE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""}],"id":219,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3452:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3452:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":225,"nodeType":"ExpressionStatement","src":"3452:50:0"},{"expression":{"expression":{"id":226,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3519:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3519:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":172,"id":228,"nodeType":"Return","src":"3512:20:0"}]},"id":230,"nodeType":"IfStatement","src":"3089:452:0","trueBody":{"id":206,"nodeType":"Block","src":"3154:140:0","statements":[{"assignments":[197],"declarations":[{"constant":false,"id":197,"mutability":"mutable","name":"recoveredSigner","nameLocation":"3172:15:0","nodeType":"VariableDeclaration","scope":206,"src":"3164:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":196,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":203,"initialValue":{"arguments":[{"id":199,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"3209:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":200,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3227:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":15,"src":"3227:16:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":198,"name":"recover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"3190:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3190:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3164:89:0"},{"expression":{"id":204,"name":"recoveredSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"3270:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":172,"id":205,"nodeType":"Return","src":"3263:22:0"}]}}]},"functionSelector":"ea23cf6e","id":232,"implemented":true,"kind":"function","modifiers":[],"name":"verifySignedPerson","nameLocation":"2788:18:0","nodeType":"FunctionDefinition","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":168,"mutability":"mutable","name":"_input","nameLocation":"2827:6:0","nodeType":"VariableDeclaration","scope":232,"src":"2807:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson"},"typeName":{"id":167,"nodeType":"UserDefinedTypeName","pathNode":{"id":166,"name":"signedPerson","nodeType":"IdentifierPath","referencedDeclaration":21,"src":"2807:12:0"},"referencedDeclaration":21,"src":"2807:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_storage_ptr","typeString":"struct signedPerson"}},"visibility":"internal"}],"src":"2806:28:0"},"returnParameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":232,"src":"2856:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"2856:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2855:9:0"},"scope":233,"src":"2779:768:0","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":234,"src":"1175:2378:0","usedErrors":[]}],"src":"0:3555:0"},"id":0},"contracts/MockEIP712Decoder.sol":{"ast":{"absolutePath":"contracts/MockEIP712Decoder.sol","exportedSymbols":{"EIP712DOMAIN_TYPEHASH":[13],"EIP712Decoder":[233],"EIP712Domain":[8],"ERC1271Contract":[45],"MockEIP712Decoder":[285],"PERSON_TYPEHASH":[31],"Person":[26],"signedPerson":[21]},"id":286,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":235,"literals":["solidity","^","0.8",".13"],"nodeType":"PragmaDirective","src":"32:24:1"},{"absolutePath":"contracts/EIP712Decoder.sol","file":"./EIP712Decoder.sol","id":236,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":286,"sourceUnit":234,"src":"58:29:1","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":237,"name":"EIP712Decoder","nodeType":"IdentifierPath","referencedDeclaration":233,"src":"119:13:1"},"id":238,"nodeType":"InheritanceSpecifier","src":"119:13:1"}],"canonicalName":"MockEIP712Decoder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":285,"linearizedBaseContracts":[285,233],"name":"MockEIP712Decoder","nameLocation":"98:17:1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":240,"mutability":"mutable","name":"domainHash","nameLocation":"147:10:1","nodeType":"VariableDeclaration","scope":285,"src":"139:18:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":274,"nodeType":"Block","src":"192:239:1","statements":[{"expression":{"id":272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":245,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"202:10:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":249,"name":"EIP712DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"249:21:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"4d6f636b4549503731324465636f646572","id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300:19:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_a65f75c936afe6c491d5e9cb93ab6ad919c55c9fa1339716b8ab51aa1c9d7fec","typeString":"literal_string \"MockEIP712Decoder\""},"value":"MockEIP712Decoder"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a65f75c936afe6c491d5e9cb93ab6ad919c55c9fa1339716b8ab51aa1c9d7fec","typeString":"literal_string \"MockEIP712Decoder\""}],"id":252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"294:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":251,"name":"bytes","nodeType":"ElementaryTypeName","src":"294:5:1","typeDescriptions":{}}},"id":254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"294:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":250,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"284:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"284:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"31","id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"351:3:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"345:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":257,"name":"bytes","nodeType":"ElementaryTypeName","src":"345:5:1","typeDescriptions":{}}},"id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"345:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":256,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"335:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"335:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":264,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"378:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"370:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":262,"name":"uint256","nodeType":"ElementaryTypeName","src":"370:7:1","typeDescriptions":{}}},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"370:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":268,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"408:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_MockEIP712Decoder_$285","typeString":"contract MockEIP712Decoder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockEIP712Decoder_$285","typeString":"contract MockEIP712Decoder"}],"id":267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"400:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":266,"name":"address","nodeType":"ElementaryTypeName","src":"400:7:1","typeDescriptions":{}}},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"400:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"225:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"225:10:1","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"225:198:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":246,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"215:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"215:209:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"202:222:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":273,"nodeType":"ExpressionStatement","src":"202:222:1"}]},"id":275,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":242,"mutability":"mutable","name":"chainId","nameLocation":"183:7:1","nodeType":"VariableDeclaration","scope":275,"src":"175:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":241,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"174:17:1"},"returnParameters":{"id":244,"nodeType":"ParameterList","parameters":[],"src":"192:0:1"},"scope":285,"src":"163:268:1","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[50],"body":{"id":283,"nodeType":"Block","src":"502:34:1","statements":[{"expression":{"id":281,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"519:10:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":280,"id":282,"nodeType":"Return","src":"512:17:1"}]},"functionSelector":"83ebb771","id":284,"implemented":true,"kind":"function","modifiers":[],"name":"getDomainHash","nameLocation":"446:13:1","nodeType":"FunctionDefinition","overrides":{"id":277,"nodeType":"OverrideSpecifier","overrides":[],"src":"475:8:1"},"parameters":{"id":276,"nodeType":"ParameterList","parameters":[],"src":"460:2:1"},"returnParameters":{"id":280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":284,"src":"493:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"492:9:1"},"scope":285,"src":"437:99:1","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":286,"src":"89:449:1","usedErrors":[]}],"src":"32:507:1"},"id":1}},"contracts":{"contracts/EIP712Decoder.sol":{"EIP712Decoder":{"abi":[{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct EIP712Domain","name":"_input","type":"tuple"}],"name":"GET_EIP712DOMAIN_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"_input","type":"tuple"}],"name":"GET_PERSON_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"message","type":"tuple"}],"internalType":"struct signedPerson","name":"_input","type":"tuple"}],"name":"verifySignedPerson","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"GET_EIP712DOMAIN_PACKETHASH((string,string,uint256))":"4bc39162","GET_PERSON_PACKETHASH((string,uint256))":"8f4f876a","getDomainHash()":"83ebb771","verifySignedPerson((bytes,address,(string,uint256)))":"ea23cf6e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct EIP712Domain\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_EIP712DOMAIN_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_PERSON_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"message\",\"type\":\"tuple\"}],\"internalType\":\"struct signedPerson\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"verifySignedPerson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EIP712Decoder.sol\":\"EIP712Decoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]}},\"version\":1}"},"ERC1271Contract":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided hash\",\"params\":{\"_hash\":\"Hash of the data to be signed\",\"_signature\":\"Signature byte array associated with _hash MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EIP712Decoder.sol\":\"ERC1271Contract\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]}},\"version\":1}"}},"contracts/MockEIP712Decoder.sol":{"MockEIP712Decoder":{"abi":[{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct EIP712Domain","name":"_input","type":"tuple"}],"name":"GET_EIP712DOMAIN_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"_input","type":"tuple"}],"name":"GET_PERSON_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"message","type":"tuple"}],"internalType":"struct signedPerson","name":"_input","type":"tuple"}],"name":"verifySignedPerson","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_275":{"entryPoint":null,"id":275,"parameterSlots":1,"returnSlots":0},"abi_decode_t_uint256_fromMemory":{"entryPoint":310,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":333,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":479,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":393,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":410,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":496,"id":null,"parameterSlots":6,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":459,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":383,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":427,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":274,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":269,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":284,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2407:2","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:2","statements":[{"nodeType":"YulAssignment","src":"57:19:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:2","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:2"},"nodeType":"YulFunctionCall","src":"67:9:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:2"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:2","type":""}],"src":"7:75:2"},{"body":{"nodeType":"YulBlock","src":"177:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:2"},"nodeType":"YulFunctionCall","src":"187:12:2"},"nodeType":"YulExpressionStatement","src":"187:12:2"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:2"},{"body":{"nodeType":"YulBlock","src":"300:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:2"},"nodeType":"YulFunctionCall","src":"310:12:2"},"nodeType":"YulExpressionStatement","src":"310:12:2"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:2"},{"body":{"nodeType":"YulBlock","src":"379:32:2","statements":[{"nodeType":"YulAssignment","src":"389:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"400:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:2"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:2","type":""}],"src":"334:77:2"},{"body":{"nodeType":"YulBlock","src":"460:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"517:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"529:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:2"},"nodeType":"YulFunctionCall","src":"519:12:2"},"nodeType":"YulExpressionStatement","src":"519:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"483:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"508:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"490:17:2"},"nodeType":"YulFunctionCall","src":"490:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"480:2:2"},"nodeType":"YulFunctionCall","src":"480:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"473:6:2"},"nodeType":"YulFunctionCall","src":"473:43:2"},"nodeType":"YulIf","src":"470:63:2"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"453:5:2","type":""}],"src":"417:122:2"},{"body":{"nodeType":"YulBlock","src":"608:80:2","statements":[{"nodeType":"YulAssignment","src":"618:22:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"633:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"627:5:2"},"nodeType":"YulFunctionCall","src":"627:13:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"618:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"676:5:2"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"649:26:2"},"nodeType":"YulFunctionCall","src":"649:33:2"},"nodeType":"YulExpressionStatement","src":"649:33:2"}]},"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"586:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"594:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"602:5:2","type":""}],"src":"545:143:2"},{"body":{"nodeType":"YulBlock","src":"771:274:2","statements":[{"body":{"nodeType":"YulBlock","src":"817:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"819:77:2"},"nodeType":"YulFunctionCall","src":"819:79:2"},"nodeType":"YulExpressionStatement","src":"819:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"792:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"801:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"788:3:2"},"nodeType":"YulFunctionCall","src":"788:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"813:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"784:3:2"},"nodeType":"YulFunctionCall","src":"784:32:2"},"nodeType":"YulIf","src":"781:119:2"},{"nodeType":"YulBlock","src":"910:128:2","statements":[{"nodeType":"YulVariableDeclaration","src":"925:15:2","value":{"kind":"number","nodeType":"YulLiteral","src":"939:1:2","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"929:6:2","type":""}]},{"nodeType":"YulAssignment","src":"954:74:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1000:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"1011:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"996:3:2"},"nodeType":"YulFunctionCall","src":"996:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1020:7:2"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulIdentifier","src":"964:31:2"},"nodeType":"YulFunctionCall","src":"964:64:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"954:6:2"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"741:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"752:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"764:6:2","type":""}],"src":"694:351:2"},{"body":{"nodeType":"YulBlock","src":"1096:32:2","statements":[{"nodeType":"YulAssignment","src":"1106:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"1117:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1106:7:2"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1078:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1088:7:2","type":""}],"src":"1051:77:2"},{"body":{"nodeType":"YulBlock","src":"1199:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1216:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1239:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"1221:17:2"},"nodeType":"YulFunctionCall","src":"1221:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1209:6:2"},"nodeType":"YulFunctionCall","src":"1209:37:2"},"nodeType":"YulExpressionStatement","src":"1209:37:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1187:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1194:3:2","type":""}],"src":"1134:118:2"},{"body":{"nodeType":"YulBlock","src":"1323:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1340:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1363:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1345:17:2"},"nodeType":"YulFunctionCall","src":"1345:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:2"},"nodeType":"YulFunctionCall","src":"1333:37:2"},"nodeType":"YulExpressionStatement","src":"1333:37:2"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1311:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1318:3:2","type":""}],"src":"1258:118:2"},{"body":{"nodeType":"YulBlock","src":"1427:81:2","statements":[{"nodeType":"YulAssignment","src":"1437:65:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1452:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"1459:42:2","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1448:3:2"},"nodeType":"YulFunctionCall","src":"1448:54:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1437:7:2"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1409:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1419:7:2","type":""}],"src":"1382:126:2"},{"body":{"nodeType":"YulBlock","src":"1559:51:2","statements":[{"nodeType":"YulAssignment","src":"1569:35:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1598:5:2"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"1580:17:2"},"nodeType":"YulFunctionCall","src":"1580:24:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1569:7:2"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1541:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1551:7:2","type":""}],"src":"1514:96:2"},{"body":{"nodeType":"YulBlock","src":"1681:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1698:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1721:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1703:17:2"},"nodeType":"YulFunctionCall","src":"1703:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1691:6:2"},"nodeType":"YulFunctionCall","src":"1691:37:2"},"nodeType":"YulExpressionStatement","src":"1691:37:2"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1669:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1676:3:2","type":""}],"src":"1616:118:2"},{"body":{"nodeType":"YulBlock","src":"1950:454:2","statements":[{"nodeType":"YulAssignment","src":"1960:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1972:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"1983:3:2","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1968:3:2"},"nodeType":"YulFunctionCall","src":"1968:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1960:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2054:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2065:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2050:3:2"},"nodeType":"YulFunctionCall","src":"2050:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"1997:43:2"},"nodeType":"YulFunctionCall","src":"1997:71:2"},"nodeType":"YulExpressionStatement","src":"1997:71:2"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2122:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2135:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2146:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2131:3:2"},"nodeType":"YulFunctionCall","src":"2131:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2078:43:2"},"nodeType":"YulFunctionCall","src":"2078:72:2"},"nodeType":"YulExpressionStatement","src":"2078:72:2"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2204:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2217:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2228:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2213:3:2"},"nodeType":"YulFunctionCall","src":"2213:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2160:43:2"},"nodeType":"YulFunctionCall","src":"2160:72:2"},"nodeType":"YulExpressionStatement","src":"2160:72:2"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2286:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2299:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2310:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2295:3:2"},"nodeType":"YulFunctionCall","src":"2295:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2242:43:2"},"nodeType":"YulFunctionCall","src":"2242:72:2"},"nodeType":"YulExpressionStatement","src":"2242:72:2"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2368:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2381:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2392:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2377:3:2"},"nodeType":"YulFunctionCall","src":"2377:19:2"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"2324:43:2"},"nodeType":"YulFunctionCall","src":"2324:73:2"},"nodeType":"YulExpressionStatement","src":"2324:73:2"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1890:9:2","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1902:6:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1910:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1918:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1926:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1934:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1945:4:2","type":""}],"src":"1740:664:2"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_address_to_t_address_fromStack(value4, add(headStart, 128))\n\n }\n\n}\n","id":2,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200105b3803806200105b83398181016040528101906200003791906200014d565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e6040518060400160405280601181526020017f4d6f636b4549503731324465636f646572000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001620000ea959493929190620001f0565b60405160208183030381529060405280519060200120600081905550506200024d565b600080fd5b6000819050919050565b620001278162000112565b81146200013357600080fd5b50565b60008151905062000147816200011c565b92915050565b6000602082840312156200016657620001656200010d565b5b6000620001768482850162000136565b91505092915050565b6000819050919050565b62000194816200017f565b82525050565b620001a58162000112565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001d882620001ab565b9050919050565b620001ea81620001cb565b82525050565b600060a08201905062000207600083018862000189565b62000216602083018762000189565b62000225604083018662000189565b6200023460608301856200019a565b620002436080830184620001df565b9695505050505050565b610dfe806200025d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220ca0a05a510565d9ee49471de5fd24a13ae81e1ff3aee845a020d6cb87285bdc764736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x105B CODESIZE SUB DUP1 PUSH3 0x105B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x14D JUMP JUMPDEST PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B4549503731324465636F646572000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0xEA SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH3 0x24D JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x127 DUP2 PUSH3 0x112 JUMP JUMPDEST DUP2 EQ PUSH3 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x147 DUP2 PUSH3 0x11C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x166 JUMPI PUSH3 0x165 PUSH3 0x10D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x176 DUP5 DUP3 DUP6 ADD PUSH3 0x136 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x194 DUP2 PUSH3 0x17F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x1A5 DUP2 PUSH3 0x112 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D8 DUP3 PUSH3 0x1AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1EA DUP2 PUSH3 0x1CB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH3 0x207 PUSH1 0x0 DUP4 ADD DUP9 PUSH3 0x189 JUMP JUMPDEST PUSH3 0x216 PUSH1 0x20 DUP4 ADD DUP8 PUSH3 0x189 JUMP JUMPDEST PUSH3 0x225 PUSH1 0x40 DUP4 ADD DUP7 PUSH3 0x189 JUMP JUMPDEST PUSH3 0x234 PUSH1 0x60 DUP4 ADD DUP6 PUSH3 0x19A JUMP JUMPDEST PUSH3 0x243 PUSH1 0x80 DUP4 ADD DUP5 PUSH3 0x1DF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDFE DUP1 PUSH3 0x25D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BC39162 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x83EBB771 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x8F4F876A EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA23CF6E EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x4B1B66E1DAD0EB5853B62DD86EBAC7B66C400129B72DA1FF5FDA43303A4F44DB DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x16F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EC PUSH2 0x166 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FE SWAP3 SWAP2 SWAP1 PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26B JUMPI PUSH1 0x0 PUSH2 0x25E DUP3 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x36B JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP PUSH2 0x366 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E DUP4 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B0 SWAP3 SWAP2 SWAP1 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0xC68 JUMP JUMPDEST SWAP1 POP PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x352 SWAP1 PUSH2 0xCE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x41 DUP6 MLOAD EQ PUSH2 0x386 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH1 0x1B DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x1B DUP2 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0xD3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1B DUP2 PUSH1 0xFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI POP PUSH1 0x1C DUP2 PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x1 DUP7 DUP3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x406 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD83 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x428 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4A0 DUP3 PUSH2 0x457 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4BF JUMPI PUSH2 0x4BE PUSH2 0x468 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D2 PUSH2 0x43E JUMP JUMPDEST SWAP1 POP PUSH2 0x4DE DUP3 DUP3 PUSH2 0x497 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x516 DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x545 PUSH2 0x540 DUP5 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x56C DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x599 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x532 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5D2 DUP2 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5ED PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x5F8 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x618 JUMPI PUSH2 0x617 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x624 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x648 JUMPI PUSH2 0x647 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x654 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x668 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x68A JUMPI PUSH2 0x689 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A7 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x6B4 DUP5 DUP3 DUP6 ADD PUSH2 0x5D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D0 DUP2 PUSH2 0x6BD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x711 PUSH1 0x40 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x731 JUMPI PUSH2 0x730 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x73D DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x751 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x773 JUMPI PUSH2 0x772 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x79D DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x7CA DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EA PUSH2 0x7E5 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x811 DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x82E JUMPI PUSH2 0x82D PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x83E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x872 DUP3 PUSH2 0x847 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x882 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP2 EQ PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x89F DUP2 PUSH2 0x879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x8C5 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8E5 JUMPI PUSH2 0x8E4 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x8F1 DUP5 DUP3 DUP6 ADD PUSH2 0x819 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x905 DUP5 DUP3 DUP6 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x935 DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x957 JUMPI PUSH2 0x956 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x974 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x981 DUP5 DUP3 DUP6 ADD PUSH2 0x8A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x98A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0E DUP3 PUSH2 0x9B4 JUMP JUMPDEST PUSH2 0xA18 DUP2 DUP6 PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH2 0xA28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xA60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA72 DUP2 DUP7 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA86 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xA95 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAB3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAC5 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xAD4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1D PUSH1 0x2 DUP4 PUSH2 0xADC JUMP JUMPDEST SWAP2 POP PUSH2 0xB28 DUP3 PUSH2 0xAE7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB4E PUSH2 0xB49 DUP3 PUSH2 0x6BD JUMP JUMPDEST PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5F DUP3 PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6B DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xB7B DUP3 DUP5 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB8B JUMP JUMPDEST PUSH2 0xBBC DUP2 DUP6 PUSH2 0xB96 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xBD5 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xBF5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC07 DUP2 DUP5 PUSH2 0xBA7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC45 DUP2 PUSH2 0xC10 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC62 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7E JUMPI PUSH2 0xC7D PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8C DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCB PUSH1 0x11 DUP4 PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP PUSH2 0xCD6 DUP3 PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCFA DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD48 DUP3 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0xD01 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xD69 JUMPI PUSH2 0xD68 PUSH2 0xD0E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xD98 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDA5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xD74 JUMP JUMPDEST PUSH2 0xDB2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDBF PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA EXP SDIV 0xA5 LT JUMP 0x5D SWAP15 0xE4 SWAP5 PUSH18 0xDE5FD24A13AE81E1FF3AEE845A020D6CB872 DUP6 0xBD 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"89:449:1:-:0;;;163:268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;177:69:0;294:26:1;;;;;;;;;;;;;;;;;284:37;;;;;;345:10;;;;;;;;;;;;;;;;;335:21;;;;;;378:7;408:4;225:198;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;215:209;;;;;;202:10;:222;;;;163:268;89:449;;88:117:2;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:77::-;1088:7;1117:5;1106:16;;1051:77;;;:::o;1134:118::-;1221:24;1239:5;1221:24;:::i;:::-;1216:3;1209:37;1134:118;;:::o;1258:::-;1345:24;1363:5;1345:24;:::i;:::-;1340:3;1333:37;1258:118;;:::o;1382:126::-;1419:7;1459:42;1452:5;1448:54;1437:65;;1382:126;;;:::o;1514:96::-;1551:7;1580:24;1598:5;1580:24;:::i;:::-;1569:35;;1514:96;;;:::o;1616:118::-;1703:24;1721:5;1703:24;:::i;:::-;1698:3;1691:37;1616:118;;:::o;1740:664::-;1945:4;1983:3;1972:9;1968:19;1960:27;;1997:71;2065:1;2054:9;2050:17;2041:6;1997:71;:::i;:::-;2078:72;2146:2;2135:9;2131:18;2122:6;2078:72;:::i;:::-;2160;2228:2;2217:9;2213:18;2204:6;2160:72;:::i;:::-;2242;2310:2;2299:9;2295:18;2286:6;2242:72;:::i;:::-;2324:73;2392:3;2381:9;2377:19;2368:6;2324:73;:::i;:::-;1740:664;;;;;;;;:::o;89:449:1:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GET_EIP712DOMAIN_PACKETHASH_141":{"entryPoint":255,"id":141,"parameterSlots":1,"returnSlots":1},"@GET_PERSON_PACKETHASH_165":{"entryPoint":367,"id":165,"parameterSlots":1,"returnSlots":1},"@getDomainHash_284":{"entryPoint":358,"id":284,"parameterSlots":0,"returnSlots":1},"@recover_115":{"entryPoint":875,"id":115,"parameterSlots":2,"returnSlots":1},"@verifySignedPerson_232":{"entryPoint":464,"id":232,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":2007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":1330,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2192,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4_fromMemory":{"entryPoint":3155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":1396,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr":{"entryPoint":1496,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Person_$26_memory_ptr":{"entryPoint":1777,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_signedPerson_$21_memory_ptr":{"entryPoint":2213,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":3176,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr":{"entryPoint":1652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Person_$26_memory_ptr":{"entryPoint":1885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr":{"entryPoint":2369,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2442,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":1735,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":2877,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2983,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2563,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2832,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack":{"entryPoint":3262,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2620,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":3444,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":2900,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":1750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3040,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2635,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2718,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":3459,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3297,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1224,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1086,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1958,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":1266,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2955,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2484,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2495,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2780,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint8":{"entryPoint":3389,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2151,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":1725,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3088,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2119,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":1442,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":3329,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory":{"entryPoint":1315,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":2512,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1175,"id":null,"parameterSlots":2,"returnSlots":0},"leftAlign_t_bytes32":{"entryPoint":2867,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3342,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1128,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1256,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":1106,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":1251,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1261,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1101,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1096,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1111,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541":{"entryPoint":2791,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88":{"entryPoint":3221,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2169,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3132,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1452,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:18257:2","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:2","statements":[{"nodeType":"YulAssignment","src":"57:19:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:2","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:2"},"nodeType":"YulFunctionCall","src":"67:9:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:2"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:2","type":""}],"src":"7:75:2"},{"body":{"nodeType":"YulBlock","src":"177:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:2"},"nodeType":"YulFunctionCall","src":"187:12:2"},"nodeType":"YulExpressionStatement","src":"187:12:2"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:2"},{"body":{"nodeType":"YulBlock","src":"300:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:2"},"nodeType":"YulFunctionCall","src":"310:12:2"},"nodeType":"YulExpressionStatement","src":"310:12:2"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:2"},{"body":{"nodeType":"YulBlock","src":"423:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"443:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"433:6:2"},"nodeType":"YulFunctionCall","src":"433:12:2"},"nodeType":"YulExpressionStatement","src":"433:12:2"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulFunctionDefinition","src":"334:117:2"},{"body":{"nodeType":"YulBlock","src":"505:54:2","statements":[{"nodeType":"YulAssignment","src":"515:38:2","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"533:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"540:2:2","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"529:3:2"},"nodeType":"YulFunctionCall","src":"529:14:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"549:2:2","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"545:3:2"},"nodeType":"YulFunctionCall","src":"545:7:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"525:3:2"},"nodeType":"YulFunctionCall","src":"525:28:2"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"515:6:2"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"488:5:2","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"498:6:2","type":""}],"src":"457:102:2"},{"body":{"nodeType":"YulBlock","src":"593:152:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"610:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"613:77:2","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"603:6:2"},"nodeType":"YulFunctionCall","src":"603:88:2"},"nodeType":"YulExpressionStatement","src":"603:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"707:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"710:4:2","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"700:6:2"},"nodeType":"YulFunctionCall","src":"700:15:2"},"nodeType":"YulExpressionStatement","src":"700:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:2"},"nodeType":"YulFunctionCall","src":"724:15:2"},"nodeType":"YulExpressionStatement","src":"724:15:2"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"565:180:2"},{"body":{"nodeType":"YulBlock","src":"794:238:2","statements":[{"nodeType":"YulVariableDeclaration","src":"804:58:2","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"826:6:2"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"856:4:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"834:21:2"},"nodeType":"YulFunctionCall","src":"834:27:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:2"},"nodeType":"YulFunctionCall","src":"822:40:2"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"808:10:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"973:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"975:16:2"},"nodeType":"YulFunctionCall","src":"975:18:2"},"nodeType":"YulExpressionStatement","src":"975:18:2"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"916:10:2"},{"kind":"number","nodeType":"YulLiteral","src":"928:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"913:2:2"},"nodeType":"YulFunctionCall","src":"913:34:2"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"952:10:2"},{"name":"memPtr","nodeType":"YulIdentifier","src":"964:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"949:2:2"},"nodeType":"YulFunctionCall","src":"949:22:2"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"910:2:2"},"nodeType":"YulFunctionCall","src":"910:62:2"},"nodeType":"YulIf","src":"907:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1011:2:2","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1015:10:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1004:6:2"},"nodeType":"YulFunctionCall","src":"1004:22:2"},"nodeType":"YulExpressionStatement","src":"1004:22:2"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"780:6:2","type":""},{"name":"size","nodeType":"YulTypedName","src":"788:4:2","type":""}],"src":"751:281:2"},{"body":{"nodeType":"YulBlock","src":"1079:88:2","statements":[{"nodeType":"YulAssignment","src":"1089:30:2","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1099:18:2"},"nodeType":"YulFunctionCall","src":"1099:20:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1089:6:2"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1148:6:2"},{"name":"size","nodeType":"YulIdentifier","src":"1156:4:2"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1128:19:2"},"nodeType":"YulFunctionCall","src":"1128:33:2"},"nodeType":"YulExpressionStatement","src":"1128:33:2"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1063:4:2","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1072:6:2","type":""}],"src":"1038:129:2"},{"body":{"nodeType":"YulBlock","src":"1262:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1279:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1282:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1272:6:2"},"nodeType":"YulFunctionCall","src":"1272:12:2"},"nodeType":"YulExpressionStatement","src":"1272:12:2"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulFunctionDefinition","src":"1173:117:2"},{"body":{"nodeType":"YulBlock","src":"1385:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1402:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1405:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1395:6:2"},"nodeType":"YulFunctionCall","src":"1395:12:2"},"nodeType":"YulExpressionStatement","src":"1395:12:2"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"1296:117:2"},{"body":{"nodeType":"YulBlock","src":"1508:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1525:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1528:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1518:6:2"},"nodeType":"YulFunctionCall","src":"1518:12:2"},"nodeType":"YulExpressionStatement","src":"1518:12:2"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulFunctionDefinition","src":"1419:117:2"},{"body":{"nodeType":"YulBlock","src":"1609:241:2","statements":[{"body":{"nodeType":"YulBlock","src":"1714:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1716:16:2"},"nodeType":"YulFunctionCall","src":"1716:18:2"},"nodeType":"YulExpressionStatement","src":"1716:18:2"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1686:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"1694:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1683:2:2"},"nodeType":"YulFunctionCall","src":"1683:30:2"},"nodeType":"YulIf","src":"1680:56:2"},{"nodeType":"YulAssignment","src":"1746:37:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1776:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"1754:21:2"},"nodeType":"YulFunctionCall","src":"1754:29:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1746:4:2"}]},{"nodeType":"YulAssignment","src":"1820:23:2","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"1832:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"1838:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1828:3:2"},"nodeType":"YulFunctionCall","src":"1828:15:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1820:4:2"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"1593:6:2","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"1604:4:2","type":""}],"src":"1542:308:2"},{"body":{"nodeType":"YulBlock","src":"1907:103:2","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1930:3:2"},{"name":"src","nodeType":"YulIdentifier","src":"1935:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"1940:6:2"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1917:12:2"},"nodeType":"YulFunctionCall","src":"1917:30:2"},"nodeType":"YulExpressionStatement","src":"1917:30:2"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1988:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"1993:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1984:3:2"},"nodeType":"YulFunctionCall","src":"1984:16:2"},{"kind":"number","nodeType":"YulLiteral","src":"2002:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1977:6:2"},"nodeType":"YulFunctionCall","src":"1977:27:2"},"nodeType":"YulExpressionStatement","src":"1977:27:2"}]},"name":"copy_calldata_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1889:3:2","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1894:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"1899:6:2","type":""}],"src":"1856:154:2"},{"body":{"nodeType":"YulBlock","src":"2100:328:2","statements":[{"nodeType":"YulAssignment","src":"2110:75:2","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2177:6:2"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nodeType":"YulIdentifier","src":"2135:41:2"},"nodeType":"YulFunctionCall","src":"2135:49:2"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2119:15:2"},"nodeType":"YulFunctionCall","src":"2119:66:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2110:5:2"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2201:5:2"},{"name":"length","nodeType":"YulIdentifier","src":"2208:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2194:6:2"},"nodeType":"YulFunctionCall","src":"2194:21:2"},"nodeType":"YulExpressionStatement","src":"2194:21:2"},{"nodeType":"YulVariableDeclaration","src":"2224:27:2","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2239:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"2246:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2235:3:2"},"nodeType":"YulFunctionCall","src":"2235:16:2"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2228:3:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"2289:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"2291:77:2"},"nodeType":"YulFunctionCall","src":"2291:79:2"},"nodeType":"YulExpressionStatement","src":"2291:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2270:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"2275:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2266:3:2"},"nodeType":"YulFunctionCall","src":"2266:16:2"},{"name":"end","nodeType":"YulIdentifier","src":"2284:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2263:2:2"},"nodeType":"YulFunctionCall","src":"2263:25:2"},"nodeType":"YulIf","src":"2260:112:2"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2405:3:2"},{"name":"dst","nodeType":"YulIdentifier","src":"2410:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"2415:6:2"}],"functionName":{"name":"copy_calldata_to_memory","nodeType":"YulIdentifier","src":"2381:23:2"},"nodeType":"YulFunctionCall","src":"2381:41:2"},"nodeType":"YulExpressionStatement","src":"2381:41:2"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2073:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"2078:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"2086:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2094:5:2","type":""}],"src":"2016:412:2"},{"body":{"nodeType":"YulBlock","src":"2510:278:2","statements":[{"body":{"nodeType":"YulBlock","src":"2559:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"2561:77:2"},"nodeType":"YulFunctionCall","src":"2561:79:2"},"nodeType":"YulExpressionStatement","src":"2561:79:2"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2538:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2546:4:2","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2534:3:2"},"nodeType":"YulFunctionCall","src":"2534:17:2"},{"name":"end","nodeType":"YulIdentifier","src":"2553:3:2"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2530:3:2"},"nodeType":"YulFunctionCall","src":"2530:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2523:6:2"},"nodeType":"YulFunctionCall","src":"2523:35:2"},"nodeType":"YulIf","src":"2520:122:2"},{"nodeType":"YulVariableDeclaration","src":"2651:34:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2678:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2665:12:2"},"nodeType":"YulFunctionCall","src":"2665:20:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2655:6:2","type":""}]},{"nodeType":"YulAssignment","src":"2694:88:2","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2755:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2763:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2751:3:2"},"nodeType":"YulFunctionCall","src":"2751:17:2"},{"name":"length","nodeType":"YulIdentifier","src":"2770:6:2"},{"name":"end","nodeType":"YulIdentifier","src":"2778:3:2"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"2703:47:2"},"nodeType":"YulFunctionCall","src":"2703:79:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2694:5:2"}]}]},"name":"abi_decode_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2488:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"2496:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2504:5:2","type":""}],"src":"2448:340:2"},{"body":{"nodeType":"YulBlock","src":"2839:32:2","statements":[{"nodeType":"YulAssignment","src":"2849:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"2860:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2849:7:2"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2821:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2831:7:2","type":""}],"src":"2794:77:2"},{"body":{"nodeType":"YulBlock","src":"2920:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"2977:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2986:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2989:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2979:6:2"},"nodeType":"YulFunctionCall","src":"2979:12:2"},"nodeType":"YulExpressionStatement","src":"2979:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2943:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2968:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"2950:17:2"},"nodeType":"YulFunctionCall","src":"2950:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2940:2:2"},"nodeType":"YulFunctionCall","src":"2940:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2933:6:2"},"nodeType":"YulFunctionCall","src":"2933:43:2"},"nodeType":"YulIf","src":"2930:63:2"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2913:5:2","type":""}],"src":"2877:122:2"},{"body":{"nodeType":"YulBlock","src":"3057:87:2","statements":[{"nodeType":"YulAssignment","src":"3067:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3089:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3076:12:2"},"nodeType":"YulFunctionCall","src":"3076:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3067:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3132:5:2"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"3105:26:2"},"nodeType":"YulFunctionCall","src":"3105:33:2"},"nodeType":"YulExpressionStatement","src":"3105:33:2"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3035:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"3043:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3051:5:2","type":""}],"src":"3005:139:2"},{"body":{"nodeType":"YulBlock","src":"3259:1001:2","statements":[{"body":{"nodeType":"YulBlock","src":"3303:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"3305:77:2"},"nodeType":"YulFunctionCall","src":"3305:79:2"},"nodeType":"YulExpressionStatement","src":"3305:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"3280:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"3285:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3276:3:2"},"nodeType":"YulFunctionCall","src":"3276:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"3297:4:2","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3272:3:2"},"nodeType":"YulFunctionCall","src":"3272:30:2"},"nodeType":"YulIf","src":"3269:117:2"},{"nodeType":"YulAssignment","src":"3395:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3420:4:2","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3404:15:2"},"nodeType":"YulFunctionCall","src":"3404:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3395:5:2"}]},{"nodeType":"YulBlock","src":"3435:320:2","statements":[{"nodeType":"YulVariableDeclaration","src":"3470:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3501:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3512:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3497:3:2"},"nodeType":"YulFunctionCall","src":"3497:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3484:12:2"},"nodeType":"YulFunctionCall","src":"3484:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3474:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3562:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"3564:77:2"},"nodeType":"YulFunctionCall","src":"3564:79:2"},"nodeType":"YulExpressionStatement","src":"3564:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3534:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3542:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3531:2:2"},"nodeType":"YulFunctionCall","src":"3531:30:2"},"nodeType":"YulIf","src":"3528:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3670:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"3677:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3666:3:2"},"nodeType":"YulFunctionCall","src":"3666:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3719:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"3730:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3715:3:2"},"nodeType":"YulFunctionCall","src":"3715:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"3739:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"3684:30:2"},"nodeType":"YulFunctionCall","src":"3684:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3659:6:2"},"nodeType":"YulFunctionCall","src":"3659:85:2"},"nodeType":"YulExpressionStatement","src":"3659:85:2"}]},{"nodeType":"YulBlock","src":"3765:324:2","statements":[{"nodeType":"YulVariableDeclaration","src":"3803:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3834:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3845:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3830:3:2"},"nodeType":"YulFunctionCall","src":"3830:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3817:12:2"},"nodeType":"YulFunctionCall","src":"3817:32:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3807:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3896:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"3898:77:2"},"nodeType":"YulFunctionCall","src":"3898:79:2"},"nodeType":"YulExpressionStatement","src":"3898:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3868:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3876:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3865:2:2"},"nodeType":"YulFunctionCall","src":"3865:30:2"},"nodeType":"YulIf","src":"3862:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4004:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:2"},"nodeType":"YulFunctionCall","src":"4000:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4053:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4064:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4049:3:2"},"nodeType":"YulFunctionCall","src":"4049:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"4073:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"4018:30:2"},"nodeType":"YulFunctionCall","src":"4018:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3993:6:2"},"nodeType":"YulFunctionCall","src":"3993:85:2"},"nodeType":"YulExpressionStatement","src":"3993:85:2"}]},{"nodeType":"YulBlock","src":"4099:154:2","statements":[{"nodeType":"YulVariableDeclaration","src":"4137:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"4151:2:2","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4141:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4178:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"4185:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4174:3:2"},"nodeType":"YulFunctionCall","src":"4174:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4228:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4213:3:2"},"nodeType":"YulFunctionCall","src":"4213:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"4237:3:2"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"4192:20:2"},"nodeType":"YulFunctionCall","src":"4192:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4167:6:2"},"nodeType":"YulFunctionCall","src":"4167:75:2"},"nodeType":"YulExpressionStatement","src":"4167:75:2"}]}]},"name":"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3234:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"3245:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3253:5:2","type":""}],"src":"3177:1083:2"},{"body":{"nodeType":"YulBlock","src":"4359:450:2","statements":[{"body":{"nodeType":"YulBlock","src":"4405:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4407:77:2"},"nodeType":"YulFunctionCall","src":"4407:79:2"},"nodeType":"YulExpressionStatement","src":"4407:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4380:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"4389:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4376:3:2"},"nodeType":"YulFunctionCall","src":"4376:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"4401:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4372:3:2"},"nodeType":"YulFunctionCall","src":"4372:32:2"},"nodeType":"YulIf","src":"4369:119:2"},{"nodeType":"YulBlock","src":"4498:304:2","statements":[{"nodeType":"YulVariableDeclaration","src":"4513:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4544:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4555:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4540:3:2"},"nodeType":"YulFunctionCall","src":"4540:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4527:12:2"},"nodeType":"YulFunctionCall","src":"4527:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4517:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"4605:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"4607:77:2"},"nodeType":"YulFunctionCall","src":"4607:79:2"},"nodeType":"YulExpressionStatement","src":"4607:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4577:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"4585:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4574:2:2"},"nodeType":"YulFunctionCall","src":"4574:30:2"},"nodeType":"YulIf","src":"4571:117:2"},{"nodeType":"YulAssignment","src":"4702:90:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4764:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4775:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4760:3:2"},"nodeType":"YulFunctionCall","src":"4760:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4784:7:2"}],"functionName":{"name":"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulIdentifier","src":"4712:47:2"},"nodeType":"YulFunctionCall","src":"4712:80:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4702:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4329:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4340:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4352:6:2","type":""}],"src":"4266:543:2"},{"body":{"nodeType":"YulBlock","src":"4860:32:2","statements":[{"nodeType":"YulAssignment","src":"4870:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"4881:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4870:7:2"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4842:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4852:7:2","type":""}],"src":"4815:77:2"},{"body":{"nodeType":"YulBlock","src":"4963:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4980:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5003:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"4985:17:2"},"nodeType":"YulFunctionCall","src":"4985:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4973:6:2"},"nodeType":"YulFunctionCall","src":"4973:37:2"},"nodeType":"YulExpressionStatement","src":"4973:37:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4951:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4958:3:2","type":""}],"src":"4898:118:2"},{"body":{"nodeType":"YulBlock","src":"5120:124:2","statements":[{"nodeType":"YulAssignment","src":"5130:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5142:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5153:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5138:3:2"},"nodeType":"YulFunctionCall","src":"5138:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5130:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5210:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5234:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:2"},"nodeType":"YulFunctionCall","src":"5219:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"5166:43:2"},"nodeType":"YulFunctionCall","src":"5166:71:2"},"nodeType":"YulExpressionStatement","src":"5166:71:2"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5092:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5104:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5115:4:2","type":""}],"src":"5022:222:2"},{"body":{"nodeType":"YulBlock","src":"5348:663:2","statements":[{"body":{"nodeType":"YulBlock","src":"5392:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"5394:77:2"},"nodeType":"YulFunctionCall","src":"5394:79:2"},"nodeType":"YulExpressionStatement","src":"5394:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5369:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"5374:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5365:3:2"},"nodeType":"YulFunctionCall","src":"5365:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"5386:4:2","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5361:3:2"},"nodeType":"YulFunctionCall","src":"5361:30:2"},"nodeType":"YulIf","src":"5358:117:2"},{"nodeType":"YulAssignment","src":"5484:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5509:4:2","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5493:15:2"},"nodeType":"YulFunctionCall","src":"5493:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5484:5:2"}]},{"nodeType":"YulBlock","src":"5524:320:2","statements":[{"nodeType":"YulVariableDeclaration","src":"5559:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5590:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5601:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5586:3:2"},"nodeType":"YulFunctionCall","src":"5586:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5573:12:2"},"nodeType":"YulFunctionCall","src":"5573:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5563:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"5651:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"5653:77:2"},"nodeType":"YulFunctionCall","src":"5653:79:2"},"nodeType":"YulExpressionStatement","src":"5653:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5623:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"5631:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5620:2:2"},"nodeType":"YulFunctionCall","src":"5620:30:2"},"nodeType":"YulIf","src":"5617:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5759:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"5766:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5755:3:2"},"nodeType":"YulFunctionCall","src":"5755:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5808:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"5819:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5804:3:2"},"nodeType":"YulFunctionCall","src":"5804:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"5828:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"5773:30:2"},"nodeType":"YulFunctionCall","src":"5773:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5748:6:2"},"nodeType":"YulFunctionCall","src":"5748:85:2"},"nodeType":"YulExpressionStatement","src":"5748:85:2"}]},{"nodeType":"YulBlock","src":"5854:150:2","statements":[{"nodeType":"YulVariableDeclaration","src":"5888:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"5902:2:2","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5892:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5929:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"5936:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5925:3:2"},"nodeType":"YulFunctionCall","src":"5925:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5968:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"5979:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5964:3:2"},"nodeType":"YulFunctionCall","src":"5964:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"5988:3:2"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"5943:20:2"},"nodeType":"YulFunctionCall","src":"5943:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5918:6:2"},"nodeType":"YulFunctionCall","src":"5918:75:2"},"nodeType":"YulExpressionStatement","src":"5918:75:2"}]}]},"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5323:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"5334:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5342:5:2","type":""}],"src":"5271:740:2"},{"body":{"nodeType":"YulBlock","src":"6105:445:2","statements":[{"body":{"nodeType":"YulBlock","src":"6151:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"6153:77:2"},"nodeType":"YulFunctionCall","src":"6153:79:2"},"nodeType":"YulExpressionStatement","src":"6153:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6126:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"6135:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6122:3:2"},"nodeType":"YulFunctionCall","src":"6122:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"6147:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6118:3:2"},"nodeType":"YulFunctionCall","src":"6118:32:2"},"nodeType":"YulIf","src":"6115:119:2"},{"nodeType":"YulBlock","src":"6244:299:2","statements":[{"nodeType":"YulVariableDeclaration","src":"6259:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6290:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"6301:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6286:3:2"},"nodeType":"YulFunctionCall","src":"6286:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6273:12:2"},"nodeType":"YulFunctionCall","src":"6273:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6263:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"6351:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"6353:77:2"},"nodeType":"YulFunctionCall","src":"6353:79:2"},"nodeType":"YulExpressionStatement","src":"6353:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6323:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6331:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6320:2:2"},"nodeType":"YulFunctionCall","src":"6320:30:2"},"nodeType":"YulIf","src":"6317:117:2"},{"nodeType":"YulAssignment","src":"6448:85:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6505:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"6516:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6501:3:2"},"nodeType":"YulFunctionCall","src":"6501:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6525:7:2"}],"functionName":{"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulIdentifier","src":"6458:42:2"},"nodeType":"YulFunctionCall","src":"6458:75:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6448:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_Person_$26_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6075:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6086:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6098:6:2","type":""}],"src":"6017:533:2"},{"body":{"nodeType":"YulBlock","src":"6622:241:2","statements":[{"body":{"nodeType":"YulBlock","src":"6727:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"6729:16:2"},"nodeType":"YulFunctionCall","src":"6729:18:2"},"nodeType":"YulExpressionStatement","src":"6729:18:2"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6699:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6707:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6696:2:2"},"nodeType":"YulFunctionCall","src":"6696:30:2"},"nodeType":"YulIf","src":"6693:56:2"},{"nodeType":"YulAssignment","src":"6759:37:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6789:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"6767:21:2"},"nodeType":"YulFunctionCall","src":"6767:29:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6759:4:2"}]},{"nodeType":"YulAssignment","src":"6833:23:2","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"6845:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"6851:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6841:3:2"},"nodeType":"YulFunctionCall","src":"6841:15:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6833:4:2"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"6606:6:2","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"6617:4:2","type":""}],"src":"6556:307:2"},{"body":{"nodeType":"YulBlock","src":"6952:327:2","statements":[{"nodeType":"YulAssignment","src":"6962:74:2","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7028:6:2"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"6987:40:2"},"nodeType":"YulFunctionCall","src":"6987:48:2"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6971:15:2"},"nodeType":"YulFunctionCall","src":"6971:65:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"6962:5:2"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7052:5:2"},{"name":"length","nodeType":"YulIdentifier","src":"7059:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7045:6:2"},"nodeType":"YulFunctionCall","src":"7045:21:2"},"nodeType":"YulExpressionStatement","src":"7045:21:2"},{"nodeType":"YulVariableDeclaration","src":"7075:27:2","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7090:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"7097:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7086:3:2"},"nodeType":"YulFunctionCall","src":"7086:16:2"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"7079:3:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"7140:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"7142:77:2"},"nodeType":"YulFunctionCall","src":"7142:79:2"},"nodeType":"YulExpressionStatement","src":"7142:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7121:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7126:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7117:3:2"},"nodeType":"YulFunctionCall","src":"7117:16:2"},{"name":"end","nodeType":"YulIdentifier","src":"7135:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7114:2:2"},"nodeType":"YulFunctionCall","src":"7114:25:2"},"nodeType":"YulIf","src":"7111:112:2"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7256:3:2"},{"name":"dst","nodeType":"YulIdentifier","src":"7261:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7266:6:2"}],"functionName":{"name":"copy_calldata_to_memory","nodeType":"YulIdentifier","src":"7232:23:2"},"nodeType":"YulFunctionCall","src":"7232:41:2"},"nodeType":"YulExpressionStatement","src":"7232:41:2"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"6925:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"6930:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"6938:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"6946:5:2","type":""}],"src":"6869:410:2"},{"body":{"nodeType":"YulBlock","src":"7359:277:2","statements":[{"body":{"nodeType":"YulBlock","src":"7408:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"7410:77:2"},"nodeType":"YulFunctionCall","src":"7410:79:2"},"nodeType":"YulExpressionStatement","src":"7410:79:2"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7387:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"7395:4:2","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7383:3:2"},"nodeType":"YulFunctionCall","src":"7383:17:2"},{"name":"end","nodeType":"YulIdentifier","src":"7402:3:2"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7379:3:2"},"nodeType":"YulFunctionCall","src":"7379:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7372:6:2"},"nodeType":"YulFunctionCall","src":"7372:35:2"},"nodeType":"YulIf","src":"7369:122:2"},{"nodeType":"YulVariableDeclaration","src":"7500:34:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7527:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7514:12:2"},"nodeType":"YulFunctionCall","src":"7514:20:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7504:6:2","type":""}]},{"nodeType":"YulAssignment","src":"7543:87:2","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7603:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"7611:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7599:3:2"},"nodeType":"YulFunctionCall","src":"7599:17:2"},{"name":"length","nodeType":"YulIdentifier","src":"7618:6:2"},{"name":"end","nodeType":"YulIdentifier","src":"7626:3:2"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"7552:46:2"},"nodeType":"YulFunctionCall","src":"7552:78:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"7543:5:2"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7337:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"7345:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7353:5:2","type":""}],"src":"7298:338:2"},{"body":{"nodeType":"YulBlock","src":"7687:81:2","statements":[{"nodeType":"YulAssignment","src":"7697:65:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7712:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"7719:42:2","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7708:3:2"},"nodeType":"YulFunctionCall","src":"7708:54:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"7697:7:2"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7669:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"7679:7:2","type":""}],"src":"7642:126:2"},{"body":{"nodeType":"YulBlock","src":"7819:51:2","statements":[{"nodeType":"YulAssignment","src":"7829:35:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7858:5:2"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"7840:17:2"},"nodeType":"YulFunctionCall","src":"7840:24:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"7829:7:2"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7801:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"7811:7:2","type":""}],"src":"7774:96:2"},{"body":{"nodeType":"YulBlock","src":"7919:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"7976:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7985:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7988:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7978:6:2"},"nodeType":"YulFunctionCall","src":"7978:12:2"},"nodeType":"YulExpressionStatement","src":"7978:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7942:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7967:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"7949:17:2"},"nodeType":"YulFunctionCall","src":"7949:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7939:2:2"},"nodeType":"YulFunctionCall","src":"7939:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7932:6:2"},"nodeType":"YulFunctionCall","src":"7932:43:2"},"nodeType":"YulIf","src":"7929:63:2"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7912:5:2","type":""}],"src":"7876:122:2"},{"body":{"nodeType":"YulBlock","src":"8056:87:2","statements":[{"nodeType":"YulAssignment","src":"8066:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8088:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8075:12:2"},"nodeType":"YulFunctionCall","src":"8075:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8066:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8131:5:2"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"8104:26:2"},"nodeType":"YulFunctionCall","src":"8104:33:2"},"nodeType":"YulExpressionStatement","src":"8104:33:2"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"8034:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"8042:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8050:5:2","type":""}],"src":"8004:139:2"},{"body":{"nodeType":"YulBlock","src":"8259:1016:2","statements":[{"body":{"nodeType":"YulBlock","src":"8303:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"8305:77:2"},"nodeType":"YulFunctionCall","src":"8305:79:2"},"nodeType":"YulExpressionStatement","src":"8305:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"8280:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"8285:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8276:3:2"},"nodeType":"YulFunctionCall","src":"8276:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"8297:4:2","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8272:3:2"},"nodeType":"YulFunctionCall","src":"8272:30:2"},"nodeType":"YulIf","src":"8269:117:2"},{"nodeType":"YulAssignment","src":"8395:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8420:4:2","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8404:15:2"},"nodeType":"YulFunctionCall","src":"8404:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8395:5:2"}]},{"nodeType":"YulBlock","src":"8435:324:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8475:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8506:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"8517:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8502:3:2"},"nodeType":"YulFunctionCall","src":"8502:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8489:12:2"},"nodeType":"YulFunctionCall","src":"8489:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8479:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"8567:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"8569:77:2"},"nodeType":"YulFunctionCall","src":"8569:79:2"},"nodeType":"YulExpressionStatement","src":"8569:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8539:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"8547:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8536:2:2"},"nodeType":"YulFunctionCall","src":"8536:30:2"},"nodeType":"YulIf","src":"8533:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8675:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"8682:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8671:3:2"},"nodeType":"YulFunctionCall","src":"8671:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8723:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"8734:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8719:3:2"},"nodeType":"YulFunctionCall","src":"8719:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"8743:3:2"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"8689:29:2"},"nodeType":"YulFunctionCall","src":"8689:58:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8664:6:2"},"nodeType":"YulFunctionCall","src":"8664:84:2"},"nodeType":"YulExpressionStatement","src":"8664:84:2"}]},{"nodeType":"YulBlock","src":"8769:153:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8806:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"8820:2:2","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8810:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8847:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"8854:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8843:3:2"},"nodeType":"YulFunctionCall","src":"8843:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8886:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"8897:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8882:3:2"},"nodeType":"YulFunctionCall","src":"8882:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"8906:3:2"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8861:20:2"},"nodeType":"YulFunctionCall","src":"8861:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8836:6:2"},"nodeType":"YulFunctionCall","src":"8836:75:2"},"nodeType":"YulExpressionStatement","src":"8836:75:2"}]},{"nodeType":"YulBlock","src":"8932:336:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8970:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9001:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"9012:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8997:3:2"},"nodeType":"YulFunctionCall","src":"8997:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8984:12:2"},"nodeType":"YulFunctionCall","src":"8984:32:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8974:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"9063:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"9065:77:2"},"nodeType":"YulFunctionCall","src":"9065:79:2"},"nodeType":"YulExpressionStatement","src":"9065:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9035:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"9043:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9032:2:2"},"nodeType":"YulFunctionCall","src":"9032:30:2"},"nodeType":"YulIf","src":"9029:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9171:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"9178:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9167:3:2"},"nodeType":"YulFunctionCall","src":"9167:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9232:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"9243:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9228:3:2"},"nodeType":"YulFunctionCall","src":"9228:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"9252:3:2"}],"functionName":{"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulIdentifier","src":"9185:42:2"},"nodeType":"YulFunctionCall","src":"9185:71:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9160:6:2"},"nodeType":"YulFunctionCall","src":"9160:97:2"},"nodeType":"YulExpressionStatement","src":"9160:97:2"}]}]},"name":"abi_decode_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8234:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"8245:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8253:5:2","type":""}],"src":"8176:1099:2"},{"body":{"nodeType":"YulBlock","src":"9375:451:2","statements":[{"body":{"nodeType":"YulBlock","src":"9421:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"9423:77:2"},"nodeType":"YulFunctionCall","src":"9423:79:2"},"nodeType":"YulExpressionStatement","src":"9423:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9396:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"9405:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9392:3:2"},"nodeType":"YulFunctionCall","src":"9392:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"9417:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9388:3:2"},"nodeType":"YulFunctionCall","src":"9388:32:2"},"nodeType":"YulIf","src":"9385:119:2"},{"nodeType":"YulBlock","src":"9514:305:2","statements":[{"nodeType":"YulVariableDeclaration","src":"9529:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9560:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"9571:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9556:3:2"},"nodeType":"YulFunctionCall","src":"9556:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9543:12:2"},"nodeType":"YulFunctionCall","src":"9543:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9533:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"9621:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"9623:77:2"},"nodeType":"YulFunctionCall","src":"9623:79:2"},"nodeType":"YulExpressionStatement","src":"9623:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9593:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"9601:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9590:2:2"},"nodeType":"YulFunctionCall","src":"9590:30:2"},"nodeType":"YulIf","src":"9587:117:2"},{"nodeType":"YulAssignment","src":"9718:91:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9781:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"9792:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9777:3:2"},"nodeType":"YulFunctionCall","src":"9777:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9801:7:2"}],"functionName":{"name":"abi_decode_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulIdentifier","src":"9728:48:2"},"nodeType":"YulFunctionCall","src":"9728:81:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9718:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9345:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9356:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9368:6:2","type":""}],"src":"9281:545:2"},{"body":{"nodeType":"YulBlock","src":"9897:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9914:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9937:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"9919:17:2"},"nodeType":"YulFunctionCall","src":"9919:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9907:6:2"},"nodeType":"YulFunctionCall","src":"9907:37:2"},"nodeType":"YulExpressionStatement","src":"9907:37:2"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9885:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9892:3:2","type":""}],"src":"9832:118:2"},{"body":{"nodeType":"YulBlock","src":"10054:124:2","statements":[{"nodeType":"YulAssignment","src":"10064:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10076:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10072:3:2"},"nodeType":"YulFunctionCall","src":"10072:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10064:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10144:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10157:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"10168:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10153:3:2"},"nodeType":"YulFunctionCall","src":"10153:17:2"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"10100:43:2"},"nodeType":"YulFunctionCall","src":"10100:71:2"},"nodeType":"YulExpressionStatement","src":"10100:71:2"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10026:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10038:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10049:4:2","type":""}],"src":"9956:222:2"},{"body":{"nodeType":"YulBlock","src":"10243:40:2","statements":[{"nodeType":"YulAssignment","src":"10254:22:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10270:5:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10264:5:2"},"nodeType":"YulFunctionCall","src":"10264:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10254:6:2"}]}]},"name":"array_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10226:5:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10236:6:2","type":""}],"src":"10184:99:2"},{"body":{"nodeType":"YulBlock","src":"10385:73:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10402:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"10407:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10395:6:2"},"nodeType":"YulFunctionCall","src":"10395:19:2"},"nodeType":"YulExpressionStatement","src":"10395:19:2"},{"nodeType":"YulAssignment","src":"10423:29:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10442:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"10447:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10438:3:2"},"nodeType":"YulFunctionCall","src":"10438:14:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"10423:11:2"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10357:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"10362:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"10373:11:2","type":""}],"src":"10289:169:2"},{"body":{"nodeType":"YulBlock","src":"10513:258:2","statements":[{"nodeType":"YulVariableDeclaration","src":"10523:10:2","value":{"kind":"number","nodeType":"YulLiteral","src":"10532:1:2","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10527:1:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"10592:63:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10617:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"10622:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10613:3:2"},"nodeType":"YulFunctionCall","src":"10613:11:2"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10636:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"10641:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10632:3:2"},"nodeType":"YulFunctionCall","src":"10632:11:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10626:5:2"},"nodeType":"YulFunctionCall","src":"10626:18:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10606:6:2"},"nodeType":"YulFunctionCall","src":"10606:39:2"},"nodeType":"YulExpressionStatement","src":"10606:39:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10553:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"10556:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10550:2:2"},"nodeType":"YulFunctionCall","src":"10550:13:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10564:19:2","statements":[{"nodeType":"YulAssignment","src":"10566:15:2","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10575:1:2"},{"kind":"number","nodeType":"YulLiteral","src":"10578:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10571:3:2"},"nodeType":"YulFunctionCall","src":"10571:10:2"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10566:1:2"}]}]},"pre":{"nodeType":"YulBlock","src":"10546:3:2","statements":[]},"src":"10542:113:2"},{"body":{"nodeType":"YulBlock","src":"10689:76:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10739:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"10744:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10735:3:2"},"nodeType":"YulFunctionCall","src":"10735:16:2"},{"kind":"number","nodeType":"YulLiteral","src":"10753:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10728:6:2"},"nodeType":"YulFunctionCall","src":"10728:27:2"},"nodeType":"YulExpressionStatement","src":"10728:27:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10670:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"10673:6:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10667:2:2"},"nodeType":"YulFunctionCall","src":"10667:13:2"},"nodeType":"YulIf","src":"10664:101:2"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"10495:3:2","type":""},{"name":"dst","nodeType":"YulTypedName","src":"10500:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"10505:6:2","type":""}],"src":"10464:307:2"},{"body":{"nodeType":"YulBlock","src":"10869:272:2","statements":[{"nodeType":"YulVariableDeclaration","src":"10879:53:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10926:5:2"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"10893:32:2"},"nodeType":"YulFunctionCall","src":"10893:39:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10883:6:2","type":""}]},{"nodeType":"YulAssignment","src":"10941:78:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11007:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"11012:6:2"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10948:58:2"},"nodeType":"YulFunctionCall","src":"10948:71:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10941:3:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11054:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"11061:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11050:3:2"},"nodeType":"YulFunctionCall","src":"11050:16:2"},{"name":"pos","nodeType":"YulIdentifier","src":"11068:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"11073:6:2"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11028:21:2"},"nodeType":"YulFunctionCall","src":"11028:52:2"},"nodeType":"YulExpressionStatement","src":"11028:52:2"},{"nodeType":"YulAssignment","src":"11089:46:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11100:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11127:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"11105:21:2"},"nodeType":"YulFunctionCall","src":"11105:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11096:3:2"},"nodeType":"YulFunctionCall","src":"11096:39:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11089:3:2"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10850:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10857:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10865:3:2","type":""}],"src":"10777:364:2"},{"body":{"nodeType":"YulBlock","src":"11212:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11229:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11252:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"11234:17:2"},"nodeType":"YulFunctionCall","src":"11234:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11222:6:2"},"nodeType":"YulFunctionCall","src":"11222:37:2"},"nodeType":"YulExpressionStatement","src":"11222:37:2"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11200:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11207:3:2","type":""}],"src":"11147:118:2"},{"body":{"nodeType":"YulBlock","src":"11493:513:2","statements":[{"nodeType":"YulAssignment","src":"11503:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11515:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11526:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11511:3:2"},"nodeType":"YulFunctionCall","src":"11511:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11503:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11584:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11597:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11608:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11593:3:2"},"nodeType":"YulFunctionCall","src":"11593:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"11540:43:2"},"nodeType":"YulFunctionCall","src":"11540:71:2"},"nodeType":"YulExpressionStatement","src":"11540:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11632:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11643:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11628:3:2"},"nodeType":"YulFunctionCall","src":"11628:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11652:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"11658:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11648:3:2"},"nodeType":"YulFunctionCall","src":"11648:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11621:6:2"},"nodeType":"YulFunctionCall","src":"11621:48:2"},"nodeType":"YulExpressionStatement","src":"11621:48:2"},{"nodeType":"YulAssignment","src":"11678:86:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11750:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"11759:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11686:63:2"},"nodeType":"YulFunctionCall","src":"11686:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11678:4:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11785:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11796:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11781:3:2"},"nodeType":"YulFunctionCall","src":"11781:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11805:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"11811:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11801:3:2"},"nodeType":"YulFunctionCall","src":"11801:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11774:6:2"},"nodeType":"YulFunctionCall","src":"11774:48:2"},"nodeType":"YulExpressionStatement","src":"11774:48:2"},{"nodeType":"YulAssignment","src":"11831:86:2","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11903:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"11912:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11839:63:2"},"nodeType":"YulFunctionCall","src":"11839:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11831:4:2"}]},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11971:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11984:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11995:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11980:3:2"},"nodeType":"YulFunctionCall","src":"11980:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"11927:43:2"},"nodeType":"YulFunctionCall","src":"11927:72:2"},"nodeType":"YulExpressionStatement","src":"11927:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11441:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11453:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11461:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11469:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11477:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11488:4:2","type":""}],"src":"11271:735:2"},{"body":{"nodeType":"YulBlock","src":"12186:359:2","statements":[{"nodeType":"YulAssignment","src":"12196:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12208:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12219:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12204:3:2"},"nodeType":"YulFunctionCall","src":"12204:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12196:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12276:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12289:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12300:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12285:3:2"},"nodeType":"YulFunctionCall","src":"12285:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"12232:43:2"},"nodeType":"YulFunctionCall","src":"12232:71:2"},"nodeType":"YulExpressionStatement","src":"12232:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12324:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12335:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12320:3:2"},"nodeType":"YulFunctionCall","src":"12320:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12344:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"12350:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12340:3:2"},"nodeType":"YulFunctionCall","src":"12340:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12313:6:2"},"nodeType":"YulFunctionCall","src":"12313:48:2"},"nodeType":"YulExpressionStatement","src":"12313:48:2"},{"nodeType":"YulAssignment","src":"12370:86:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12442:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"12451:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"12378:63:2"},"nodeType":"YulFunctionCall","src":"12378:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12370:4:2"}]},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12510:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12523:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12534:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12519:3:2"},"nodeType":"YulFunctionCall","src":"12519:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"12466:43:2"},"nodeType":"YulFunctionCall","src":"12466:72:2"},"nodeType":"YulExpressionStatement","src":"12466:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12142:9:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12154:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12162:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12170:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12181:4:2","type":""}],"src":"12012:533:2"},{"body":{"nodeType":"YulBlock","src":"12665:34:2","statements":[{"nodeType":"YulAssignment","src":"12675:18:2","value":{"name":"pos","nodeType":"YulIdentifier","src":"12690:3:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"12675:11:2"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12637:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"12642:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"12653:11:2","type":""}],"src":"12551:148:2"},{"body":{"nodeType":"YulBlock","src":"12811:108:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12833:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"12841:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12829:3:2"},"nodeType":"YulFunctionCall","src":"12829:14:2"},{"kind":"number","nodeType":"YulLiteral","src":"12845:66:2","type":"","value":"0x1901000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12822:6:2"},"nodeType":"YulFunctionCall","src":"12822:90:2"},"nodeType":"YulExpressionStatement","src":"12822:90:2"}]},"name":"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"12803:6:2","type":""}],"src":"12705:214:2"},{"body":{"nodeType":"YulBlock","src":"13089:236:2","statements":[{"nodeType":"YulAssignment","src":"13099:91:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13183:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"13188:1:2","type":"","value":"2"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"13106:76:2"},"nodeType":"YulFunctionCall","src":"13106:84:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13099:3:2"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13288:3:2"}],"functionName":{"name":"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","nodeType":"YulIdentifier","src":"13199:88:2"},"nodeType":"YulFunctionCall","src":"13199:93:2"},"nodeType":"YulExpressionStatement","src":"13199:93:2"},{"nodeType":"YulAssignment","src":"13301:18:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13312:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"13317:1:2","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13308:3:2"},"nodeType":"YulFunctionCall","src":"13308:11:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13301:3:2"}]}]},"name":"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13077:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13085:3:2","type":""}],"src":"12925:400:2"},{"body":{"nodeType":"YulBlock","src":"13378:32:2","statements":[{"nodeType":"YulAssignment","src":"13388:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"13399:5:2"},"variableNames":[{"name":"aligned","nodeType":"YulIdentifier","src":"13388:7:2"}]}]},"name":"leftAlign_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13360:5:2","type":""}],"returnVariables":[{"name":"aligned","nodeType":"YulTypedName","src":"13370:7:2","type":""}],"src":"13331:79:2"},{"body":{"nodeType":"YulBlock","src":"13499:74:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13516:3:2"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13559:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"13541:17:2"},"nodeType":"YulFunctionCall","src":"13541:24:2"}],"functionName":{"name":"leftAlign_t_bytes32","nodeType":"YulIdentifier","src":"13521:19:2"},"nodeType":"YulFunctionCall","src":"13521:45:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13509:6:2"},"nodeType":"YulFunctionCall","src":"13509:58:2"},"nodeType":"YulExpressionStatement","src":"13509:58:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13487:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"13494:3:2","type":""}],"src":"13416:157:2"},{"body":{"nodeType":"YulBlock","src":"13824:418:2","statements":[{"nodeType":"YulAssignment","src":"13835:155:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13986:3:2"}],"functionName":{"name":"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"13842:142:2"},"nodeType":"YulFunctionCall","src":"13842:148:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13835:3:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14062:6:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14071:3:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"14000:61:2"},"nodeType":"YulFunctionCall","src":"14000:75:2"},"nodeType":"YulExpressionStatement","src":"14000:75:2"},{"nodeType":"YulAssignment","src":"14084:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14095:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14100:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14091:3:2"},"nodeType":"YulFunctionCall","src":"14091:12:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14084:3:2"}]},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14175:6:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14184:3:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"14113:61:2"},"nodeType":"YulFunctionCall","src":"14113:75:2"},"nodeType":"YulExpressionStatement","src":"14113:75:2"},{"nodeType":"YulAssignment","src":"14197:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14208:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14213:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14204:3:2"},"nodeType":"YulFunctionCall","src":"14204:12:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14197:3:2"}]},{"nodeType":"YulAssignment","src":"14226:10:2","value":{"name":"pos","nodeType":"YulIdentifier","src":"14233:3:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14226:3:2"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13795:3:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13801:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13809:6:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13820:3:2","type":""}],"src":"13579:663:2"},{"body":{"nodeType":"YulBlock","src":"14306:40:2","statements":[{"nodeType":"YulAssignment","src":"14317:22:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14333:5:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14327:5:2"},"nodeType":"YulFunctionCall","src":"14327:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14317:6:2"}]}]},"name":"array_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14289:5:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14299:6:2","type":""}],"src":"14248:98:2"},{"body":{"nodeType":"YulBlock","src":"14447:73:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14464:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14469:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14457:6:2"},"nodeType":"YulFunctionCall","src":"14457:19:2"},"nodeType":"YulExpressionStatement","src":"14457:19:2"},{"nodeType":"YulAssignment","src":"14485:29:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14504:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14509:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14500:3:2"},"nodeType":"YulFunctionCall","src":"14500:14:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"14485:11:2"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14419:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"14424:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"14435:11:2","type":""}],"src":"14352:168:2"},{"body":{"nodeType":"YulBlock","src":"14616:270:2","statements":[{"nodeType":"YulVariableDeclaration","src":"14626:52:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14672:5:2"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"14640:31:2"},"nodeType":"YulFunctionCall","src":"14640:38:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14630:6:2","type":""}]},{"nodeType":"YulAssignment","src":"14687:77:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14752:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14757:6:2"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14694:57:2"},"nodeType":"YulFunctionCall","src":"14694:70:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14687:3:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14799:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"14806:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14795:3:2"},"nodeType":"YulFunctionCall","src":"14795:16:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14813:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14818:6:2"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"14773:21:2"},"nodeType":"YulFunctionCall","src":"14773:52:2"},"nodeType":"YulExpressionStatement","src":"14773:52:2"},{"nodeType":"YulAssignment","src":"14834:46:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14845:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14872:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"14850:21:2"},"nodeType":"YulFunctionCall","src":"14850:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14841:3:2"},"nodeType":"YulFunctionCall","src":"14841:39:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14834:3:2"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14597:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14604:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14612:3:2","type":""}],"src":"14526:360:2"},{"body":{"nodeType":"YulBlock","src":"15036:275:2","statements":[{"nodeType":"YulAssignment","src":"15046:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15054:3:2"},"nodeType":"YulFunctionCall","src":"15054:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15046:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15126:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15139:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15150:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15135:3:2"},"nodeType":"YulFunctionCall","src":"15135:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"15082:43:2"},"nodeType":"YulFunctionCall","src":"15082:71:2"},"nodeType":"YulExpressionStatement","src":"15082:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15174:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15185:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15170:3:2"},"nodeType":"YulFunctionCall","src":"15170:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15194:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"15200:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15190:3:2"},"nodeType":"YulFunctionCall","src":"15190:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15163:6:2"},"nodeType":"YulFunctionCall","src":"15163:48:2"},"nodeType":"YulExpressionStatement","src":"15163:48:2"},{"nodeType":"YulAssignment","src":"15220:84:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15290:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"15299:4:2"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15228:61:2"},"nodeType":"YulFunctionCall","src":"15228:76:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15220:4:2"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15000:9:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15012:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15020:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15031:4:2","type":""}],"src":"14892:419:2"},{"body":{"nodeType":"YulBlock","src":"15361:105:2","statements":[{"nodeType":"YulAssignment","src":"15371:89:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15386:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"15393:66:2","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15382:3:2"},"nodeType":"YulFunctionCall","src":"15382:78:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"15371:7:2"}]}]},"name":"cleanup_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15343:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"15353:7:2","type":""}],"src":"15317:149:2"},{"body":{"nodeType":"YulBlock","src":"15514:78:2","statements":[{"body":{"nodeType":"YulBlock","src":"15570:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15579:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15582:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15572:6:2"},"nodeType":"YulFunctionCall","src":"15572:12:2"},"nodeType":"YulExpressionStatement","src":"15572:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15537:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15561:5:2"}],"functionName":{"name":"cleanup_t_bytes4","nodeType":"YulIdentifier","src":"15544:16:2"},"nodeType":"YulFunctionCall","src":"15544:23:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15534:2:2"},"nodeType":"YulFunctionCall","src":"15534:34:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15527:6:2"},"nodeType":"YulFunctionCall","src":"15527:42:2"},"nodeType":"YulIf","src":"15524:62:2"}]},"name":"validator_revert_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15507:5:2","type":""}],"src":"15472:120:2"},{"body":{"nodeType":"YulBlock","src":"15660:79:2","statements":[{"nodeType":"YulAssignment","src":"15670:22:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"15685:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15679:5:2"},"nodeType":"YulFunctionCall","src":"15679:13:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"15670:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15727:5:2"}],"functionName":{"name":"validator_revert_t_bytes4","nodeType":"YulIdentifier","src":"15701:25:2"},"nodeType":"YulFunctionCall","src":"15701:32:2"},"nodeType":"YulExpressionStatement","src":"15701:32:2"}]},"name":"abi_decode_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"15638:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"15646:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"15654:5:2","type":""}],"src":"15598:141:2"},{"body":{"nodeType":"YulBlock","src":"15821:273:2","statements":[{"body":{"nodeType":"YulBlock","src":"15867:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"15869:77:2"},"nodeType":"YulFunctionCall","src":"15869:79:2"},"nodeType":"YulExpressionStatement","src":"15869:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15842:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"15851:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15838:3:2"},"nodeType":"YulFunctionCall","src":"15838:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"15863:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15834:3:2"},"nodeType":"YulFunctionCall","src":"15834:32:2"},"nodeType":"YulIf","src":"15831:119:2"},{"nodeType":"YulBlock","src":"15960:127:2","statements":[{"nodeType":"YulVariableDeclaration","src":"15975:15:2","value":{"kind":"number","nodeType":"YulLiteral","src":"15989:1:2","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"15979:6:2","type":""}]},{"nodeType":"YulAssignment","src":"16004:73:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16049:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"16060:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16045:3:2"},"nodeType":"YulFunctionCall","src":"16045:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16069:7:2"}],"functionName":{"name":"abi_decode_t_bytes4_fromMemory","nodeType":"YulIdentifier","src":"16014:30:2"},"nodeType":"YulFunctionCall","src":"16014:63:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16004:6:2"}]}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15791:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15802:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15814:6:2","type":""}],"src":"15745:349:2"},{"body":{"nodeType":"YulBlock","src":"16206:61:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"16228:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"16236:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16224:3:2"},"nodeType":"YulFunctionCall","src":"16224:14:2"},{"hexValue":"494e56414c49445f5349474e4154555245","kind":"string","nodeType":"YulLiteral","src":"16240:19:2","type":"","value":"INVALID_SIGNATURE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16217:6:2"},"nodeType":"YulFunctionCall","src":"16217:43:2"},"nodeType":"YulExpressionStatement","src":"16217:43:2"}]},"name":"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"16198:6:2","type":""}],"src":"16100:167:2"},{"body":{"nodeType":"YulBlock","src":"16419:220:2","statements":[{"nodeType":"YulAssignment","src":"16429:74:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16495:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"16500:2:2","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16436:58:2"},"nodeType":"YulFunctionCall","src":"16436:67:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16429:3:2"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16601:3:2"}],"functionName":{"name":"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","nodeType":"YulIdentifier","src":"16512:88:2"},"nodeType":"YulFunctionCall","src":"16512:93:2"},"nodeType":"YulExpressionStatement","src":"16512:93:2"},{"nodeType":"YulAssignment","src":"16614:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16625:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"16630:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16621:3:2"},"nodeType":"YulFunctionCall","src":"16621:12:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16614:3:2"}]}]},"name":"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16407:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16415:3:2","type":""}],"src":"16273:366:2"},{"body":{"nodeType":"YulBlock","src":"16816:248:2","statements":[{"nodeType":"YulAssignment","src":"16826:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16838:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"16849:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16834:3:2"},"nodeType":"YulFunctionCall","src":"16834:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16826:4:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16873:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"16884:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16869:3:2"},"nodeType":"YulFunctionCall","src":"16869:17:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16892:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"16898:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16888:3:2"},"nodeType":"YulFunctionCall","src":"16888:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16862:6:2"},"nodeType":"YulFunctionCall","src":"16862:47:2"},"nodeType":"YulExpressionStatement","src":"16862:47:2"},{"nodeType":"YulAssignment","src":"16918:139:2","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17052:4:2"}],"functionName":{"name":"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16926:124:2"},"nodeType":"YulFunctionCall","src":"16926:131:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16918:4:2"}]}]},"name":"abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16796:9:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16811:4:2","type":""}],"src":"16645:419:2"},{"body":{"nodeType":"YulBlock","src":"17113:43:2","statements":[{"nodeType":"YulAssignment","src":"17123:27:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17138:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"17145:4:2","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17134:3:2"},"nodeType":"YulFunctionCall","src":"17134:16:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"17123:7:2"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17095:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"17105:7:2","type":""}],"src":"17070:86:2"},{"body":{"nodeType":"YulBlock","src":"17190:152:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17207:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17210:77:2","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17200:6:2"},"nodeType":"YulFunctionCall","src":"17200:88:2"},"nodeType":"YulExpressionStatement","src":"17200:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17304:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17307:4:2","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17297:6:2"},"nodeType":"YulFunctionCall","src":"17297:15:2"},"nodeType":"YulExpressionStatement","src":"17297:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17328:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17331:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17321:6:2"},"nodeType":"YulFunctionCall","src":"17321:15:2"},"nodeType":"YulExpressionStatement","src":"17321:15:2"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"17162:180:2"},{"body":{"nodeType":"YulBlock","src":"17390:195:2","statements":[{"nodeType":"YulAssignment","src":"17400:23:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17421:1:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17405:15:2"},"nodeType":"YulFunctionCall","src":"17405:18:2"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"17400:1:2"}]},{"nodeType":"YulAssignment","src":"17432:23:2","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17453:1:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17437:15:2"},"nodeType":"YulFunctionCall","src":"17437:18:2"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"17432:1:2"}]},{"body":{"nodeType":"YulBlock","src":"17531:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17533:16:2"},"nodeType":"YulFunctionCall","src":"17533:18:2"},"nodeType":"YulExpressionStatement","src":"17533:18:2"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17514:1:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17521:4:2","type":"","value":"0xff"},{"name":"y","nodeType":"YulIdentifier","src":"17527:1:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17517:3:2"},"nodeType":"YulFunctionCall","src":"17517:12:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17511:2:2"},"nodeType":"YulFunctionCall","src":"17511:19:2"},"nodeType":"YulIf","src":"17508:45:2"},{"nodeType":"YulAssignment","src":"17563:16:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17574:1:2"},{"name":"y","nodeType":"YulIdentifier","src":"17577:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17570:3:2"},"nodeType":"YulFunctionCall","src":"17570:9:2"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"17563:3:2"}]}]},"name":"checked_add_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17377:1:2","type":""},{"name":"y","nodeType":"YulTypedName","src":"17380:1:2","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"17386:3:2","type":""}],"src":"17348:237:2"},{"body":{"nodeType":"YulBlock","src":"17652:51:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17669:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17690:5:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17674:15:2"},"nodeType":"YulFunctionCall","src":"17674:22:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17662:6:2"},"nodeType":"YulFunctionCall","src":"17662:35:2"},"nodeType":"YulExpressionStatement","src":"17662:35:2"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17640:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"17647:3:2","type":""}],"src":"17591:112:2"},{"body":{"nodeType":"YulBlock","src":"17887:367:2","statements":[{"nodeType":"YulAssignment","src":"17897:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17909:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"17920:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17905:3:2"},"nodeType":"YulFunctionCall","src":"17905:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17897:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17978:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17991:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18002:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17987:3:2"},"nodeType":"YulFunctionCall","src":"17987:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"17934:43:2"},"nodeType":"YulFunctionCall","src":"17934:71:2"},"nodeType":"YulExpressionStatement","src":"17934:71:2"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18055:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18068:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18079:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18064:3:2"},"nodeType":"YulFunctionCall","src":"18064:18:2"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulIdentifier","src":"18015:39:2"},"nodeType":"YulFunctionCall","src":"18015:68:2"},"nodeType":"YulExpressionStatement","src":"18015:68:2"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18137:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18150:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18161:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18146:3:2"},"nodeType":"YulFunctionCall","src":"18146:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"18093:43:2"},"nodeType":"YulFunctionCall","src":"18093:72:2"},"nodeType":"YulExpressionStatement","src":"18093:72:2"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18219:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18232:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18243:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18228:3:2"},"nodeType":"YulFunctionCall","src":"18228:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"18175:43:2"},"nodeType":"YulFunctionCall","src":"18175:72:2"},"nodeType":"YulExpressionStatement","src":"18175:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17835:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17847:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17855:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17863:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17871:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17882:4:2","type":""}],"src":"17709:545:2"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct EIP712Domain\n function abi_decode_t_struct$_EIP712Domain_$8_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // name\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // version\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // chainId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_EIP712Domain_$8_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n // struct Person\n function abi_decode_t_struct$_Person_$26_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // name\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // age\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Person_$26_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Person_$26_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // struct signedPerson\n function abi_decode_t_struct$_signedPerson_$21_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // signature\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // signer\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // message\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_struct$_Person_$26_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_signedPerson_$21_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541(memPtr) {\n\n mstore(add(memPtr, 0), 0x1901000000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541(pos)\n end := add(pos, 2)\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88(memPtr) {\n\n mstore(add(memPtr, 0), \"INVALID_SIGNATURE\")\n\n }\n\n function abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint8(x, y) -> sum {\n x := cleanup_t_uint8(x)\n y := cleanup_t_uint8(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n","id":2,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220ca0a05a510565d9ee49471de5fd24a13ae81e1ff3aee845a020d6cb87285bdc764736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BC39162 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x83EBB771 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x8F4F876A EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA23CF6E EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x4B1B66E1DAD0EB5853B62DD86EBAC7B66C400129B72DA1FF5FDA43303A4F44DB DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x16F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EC PUSH2 0x166 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FE SWAP3 SWAP2 SWAP1 PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26B JUMPI PUSH1 0x0 PUSH2 0x25E DUP3 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x36B JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP PUSH2 0x366 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E DUP4 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B0 SWAP3 SWAP2 SWAP1 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0xC68 JUMP JUMPDEST SWAP1 POP PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x352 SWAP1 PUSH2 0xCE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x41 DUP6 MLOAD EQ PUSH2 0x386 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH1 0x1B DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x1B DUP2 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0xD3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1B DUP2 PUSH1 0xFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI POP PUSH1 0x1C DUP2 PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x1 DUP7 DUP3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x406 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD83 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x428 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4A0 DUP3 PUSH2 0x457 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4BF JUMPI PUSH2 0x4BE PUSH2 0x468 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D2 PUSH2 0x43E JUMP JUMPDEST SWAP1 POP PUSH2 0x4DE DUP3 DUP3 PUSH2 0x497 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x516 DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x545 PUSH2 0x540 DUP5 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x56C DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x599 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x532 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5D2 DUP2 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5ED PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x5F8 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x618 JUMPI PUSH2 0x617 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x624 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x648 JUMPI PUSH2 0x647 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x654 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x668 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x68A JUMPI PUSH2 0x689 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A7 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x6B4 DUP5 DUP3 DUP6 ADD PUSH2 0x5D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D0 DUP2 PUSH2 0x6BD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x711 PUSH1 0x40 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x731 JUMPI PUSH2 0x730 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x73D DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x751 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x773 JUMPI PUSH2 0x772 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x79D DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x7CA DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EA PUSH2 0x7E5 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x811 DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x82E JUMPI PUSH2 0x82D PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x83E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x872 DUP3 PUSH2 0x847 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x882 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP2 EQ PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x89F DUP2 PUSH2 0x879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x8C5 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8E5 JUMPI PUSH2 0x8E4 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x8F1 DUP5 DUP3 DUP6 ADD PUSH2 0x819 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x905 DUP5 DUP3 DUP6 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x935 DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x957 JUMPI PUSH2 0x956 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x974 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x981 DUP5 DUP3 DUP6 ADD PUSH2 0x8A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x98A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0E DUP3 PUSH2 0x9B4 JUMP JUMPDEST PUSH2 0xA18 DUP2 DUP6 PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH2 0xA28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xA60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA72 DUP2 DUP7 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA86 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xA95 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAB3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAC5 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xAD4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1D PUSH1 0x2 DUP4 PUSH2 0xADC JUMP JUMPDEST SWAP2 POP PUSH2 0xB28 DUP3 PUSH2 0xAE7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB4E PUSH2 0xB49 DUP3 PUSH2 0x6BD JUMP JUMPDEST PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5F DUP3 PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6B DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xB7B DUP3 DUP5 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB8B JUMP JUMPDEST PUSH2 0xBBC DUP2 DUP6 PUSH2 0xB96 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xBD5 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xBF5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC07 DUP2 DUP5 PUSH2 0xBA7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC45 DUP2 PUSH2 0xC10 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC62 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7E JUMPI PUSH2 0xC7D PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8C DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCB PUSH1 0x11 DUP4 PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP PUSH2 0xCD6 DUP3 PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCFA DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD48 DUP3 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0xD01 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xD69 JUMPI PUSH2 0xD68 PUSH2 0xD0E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xD98 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDA5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xD74 JUMP JUMPDEST PUSH2 0xDB2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDBF PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA EXP SDIV 0xA5 LT JUMP 0x5D SWAP15 0xE4 SWAP5 PUSH18 0xDE5FD24A13AE81E1FF3AEE845A020D6CB872 DUP6 0xBD 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD 0xD STOP CALLER ","sourceMap":"89:449:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:279:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;437:99:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2538:235:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:768;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2255:279;2342:7;2362:20;177:69;2432:6;:11;;;2451:6;:14;;;2473:6;:14;;;2385:108;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2362:131;;2521:7;2511:18;;;;;;2504:25;;;2255:279;;;:::o;437:99:1:-;493:7;519:10;;512:17;;437:99;:::o;2538:235:0:-;2613:7;2633:20;415:44;2697:6;:11;;;2716:6;:10;;;2656:76;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2633:99;;2760:7;2750:18;;;;;;2743:25;;;2538:235;;;:::o;2779:768::-;2856:7;2873:18;2894:37;2916:6;:14;;;2894:21;:37::i;:::-;2873:58;;2939:14;3025:15;:13;:15::i;:::-;3052:10;2975:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2956:124;;;;;;2939:141;;3110:42;3093:59;;:6;:13;;;:59;;;3089:452;;3164:23;3190:63;3209:6;3227;:16;;;3190:7;:63::i;:::-;3164:89;;3270:15;3263:22;;;;;;;3089:452;3353:13;3385:6;:13;;;3369:47;;;3417:6;3425;:16;;;3369:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3353:89;;3470:10;3460:20;;:6;:20;;;;3452:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3519:6;:13;;;3512:20;;;;;2779:768;;;;:::o;1549:702::-;1621:7;1636:9;1651;1666:7;1732:2;1718:3;:10;:16;1714:56;;1760:1;1744:19;;;;;;;1714:56;1865:2;1860:3;1856:12;1850:19;1845:24;;1896:2;1891:3;1887:12;1881:19;1876:24;;1935:2;1930:3;1926:12;1920:19;1917:1;1912:28;1907:33;;2046:2;2042:1;:6;;;2038:34;;;2063:2;2058:7;;;;;:::i;:::-;;;2038:34;2146:2;2141:1;:7;;;;:18;;;;;2157:2;2152:1;:7;;;;2141:18;2137:110;;;2185:1;2169:19;;;;;;;2137:110;2216:24;2226:4;2232:1;2235;2238;2216:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2209:31;;;;;1549:702;;;;;:::o;7:75:2:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:117::-;1282:1;1279;1272:12;1296:117;1405:1;1402;1395:12;1419:117;1528:1;1525;1518:12;1542:308;1604:4;1694:18;1686:6;1683:30;1680:56;;;1716:18;;:::i;:::-;1680:56;1754:29;1776:6;1754:29;:::i;:::-;1746:37;;1838:4;1832;1828:15;1820:23;;1542:308;;;:::o;1856:154::-;1940:6;1935:3;1930;1917:30;2002:1;1993:6;1988:3;1984:16;1977:27;1856:154;;;:::o;2016:412::-;2094:5;2119:66;2135:49;2177:6;2135:49;:::i;:::-;2119:66;:::i;:::-;2110:75;;2208:6;2201:5;2194:21;2246:4;2239:5;2235:16;2284:3;2275:6;2270:3;2266:16;2263:25;2260:112;;;2291:79;;:::i;:::-;2260:112;2381:41;2415:6;2410:3;2405;2381:41;:::i;:::-;2100:328;2016:412;;;;;:::o;2448:340::-;2504:5;2553:3;2546:4;2538:6;2534:17;2530:27;2520:122;;2561:79;;:::i;:::-;2520:122;2678:6;2665:20;2703:79;2778:3;2770:6;2763:4;2755:6;2751:17;2703:79;:::i;:::-;2694:88;;2510:278;2448:340;;;;:::o;2794:77::-;2831:7;2860:5;2849:16;;2794:77;;;:::o;2877:122::-;2950:24;2968:5;2950:24;:::i;:::-;2943:5;2940:35;2930:63;;2989:1;2986;2979:12;2930:63;2877:122;:::o;3005:139::-;3051:5;3089:6;3076:20;3067:29;;3105:33;3132:5;3105:33;:::i;:::-;3005:139;;;;:::o;3177:1083::-;3253:5;3297:4;3285:9;3280:3;3276:19;3272:30;3269:117;;;3305:79;;:::i;:::-;3269:117;3404:21;3420:4;3404:21;:::i;:::-;3395:30;;3512:1;3501:9;3497:17;3484:31;3542:18;3534:6;3531:30;3528:117;;;3564:79;;:::i;:::-;3528:117;3684:59;3739:3;3730:6;3719:9;3715:22;3684:59;:::i;:::-;3677:4;3670:5;3666:16;3659:85;3435:320;3845:2;3834:9;3830:18;3817:32;3876:18;3868:6;3865:30;3862:117;;;3898:79;;:::i;:::-;3862:117;4018:59;4073:3;4064:6;4053:9;4049:22;4018:59;:::i;:::-;4011:4;4004:5;4000:16;3993:85;3765:324;4151:2;4192:49;4237:3;4228:6;4217:9;4213:22;4192:49;:::i;:::-;4185:4;4178:5;4174:16;4167:75;4099:154;3177:1083;;;;:::o;4266:543::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:119;;;4407:79;;:::i;:::-;4369:119;4555:1;4544:9;4540:17;4527:31;4585:18;4577:6;4574:30;4571:117;;;4607:79;;:::i;:::-;4571:117;4712:80;4784:7;4775:6;4764:9;4760:22;4712:80;:::i;:::-;4702:90;;4498:304;4266:543;;;;:::o;4815:77::-;4852:7;4881:5;4870:16;;4815:77;;;:::o;4898:118::-;4985:24;5003:5;4985:24;:::i;:::-;4980:3;4973:37;4898:118;;:::o;5022:222::-;5115:4;5153:2;5142:9;5138:18;5130:26;;5166:71;5234:1;5223:9;5219:17;5210:6;5166:71;:::i;:::-;5022:222;;;;:::o;5271:740::-;5342:5;5386:4;5374:9;5369:3;5365:19;5361:30;5358:117;;;5394:79;;:::i;:::-;5358:117;5493:21;5509:4;5493:21;:::i;:::-;5484:30;;5601:1;5590:9;5586:17;5573:31;5631:18;5623:6;5620:30;5617:117;;;5653:79;;:::i;:::-;5617:117;5773:59;5828:3;5819:6;5808:9;5804:22;5773:59;:::i;:::-;5766:4;5759:5;5755:16;5748:85;5524:320;5902:2;5943:49;5988:3;5979:6;5968:9;5964:22;5943:49;:::i;:::-;5936:4;5929:5;5925:16;5918:75;5854:150;5271:740;;;;:::o;6017:533::-;6098:6;6147:2;6135:9;6126:7;6122:23;6118:32;6115:119;;;6153:79;;:::i;:::-;6115:119;6301:1;6290:9;6286:17;6273:31;6331:18;6323:6;6320:30;6317:117;;;6353:79;;:::i;:::-;6317:117;6458:75;6525:7;6516:6;6505:9;6501:22;6458:75;:::i;:::-;6448:85;;6244:299;6017:533;;;;:::o;6556:307::-;6617:4;6707:18;6699:6;6696:30;6693:56;;;6729:18;;:::i;:::-;6693:56;6767:29;6789:6;6767:29;:::i;:::-;6759:37;;6851:4;6845;6841:15;6833:23;;6556:307;;;:::o;6869:410::-;6946:5;6971:65;6987:48;7028:6;6987:48;:::i;:::-;6971:65;:::i;:::-;6962:74;;7059:6;7052:5;7045:21;7097:4;7090:5;7086:16;7135:3;7126:6;7121:3;7117:16;7114:25;7111:112;;;7142:79;;:::i;:::-;7111:112;7232:41;7266:6;7261:3;7256;7232:41;:::i;:::-;6952:327;6869:410;;;;;:::o;7298:338::-;7353:5;7402:3;7395:4;7387:6;7383:17;7379:27;7369:122;;7410:79;;:::i;:::-;7369:122;7527:6;7514:20;7552:78;7626:3;7618:6;7611:4;7603:6;7599:17;7552:78;:::i;:::-;7543:87;;7359:277;7298:338;;;;:::o;7642:126::-;7679:7;7719:42;7712:5;7708:54;7697:65;;7642:126;;;:::o;7774:96::-;7811:7;7840:24;7858:5;7840:24;:::i;:::-;7829:35;;7774:96;;;:::o;7876:122::-;7949:24;7967:5;7949:24;:::i;:::-;7942:5;7939:35;7929:63;;7988:1;7985;7978:12;7929:63;7876:122;:::o;8004:139::-;8050:5;8088:6;8075:20;8066:29;;8104:33;8131:5;8104:33;:::i;:::-;8004:139;;;;:::o;8176:1099::-;8253:5;8297:4;8285:9;8280:3;8276:19;8272:30;8269:117;;;8305:79;;:::i;:::-;8269:117;8404:21;8420:4;8404:21;:::i;:::-;8395:30;;8517:1;8506:9;8502:17;8489:31;8547:18;8539:6;8536:30;8533:117;;;8569:79;;:::i;:::-;8533:117;8689:58;8743:3;8734:6;8723:9;8719:22;8689:58;:::i;:::-;8682:4;8675:5;8671:16;8664:84;8435:324;8820:2;8861:49;8906:3;8897:6;8886:9;8882:22;8861:49;:::i;:::-;8854:4;8847:5;8843:16;8836:75;8769:153;9012:2;9001:9;8997:18;8984:32;9043:18;9035:6;9032:30;9029:117;;;9065:79;;:::i;:::-;9029:117;9185:71;9252:3;9243:6;9232:9;9228:22;9185:71;:::i;:::-;9178:4;9171:5;9167:16;9160:97;8932:336;8176:1099;;;;:::o;9281:545::-;9368:6;9417:2;9405:9;9396:7;9392:23;9388:32;9385:119;;;9423:79;;:::i;:::-;9385:119;9571:1;9560:9;9556:17;9543:31;9601:18;9593:6;9590:30;9587:117;;;9623:79;;:::i;:::-;9587:117;9728:81;9801:7;9792:6;9781:9;9777:22;9728:81;:::i;:::-;9718:91;;9514:305;9281:545;;;;:::o;9832:118::-;9919:24;9937:5;9919:24;:::i;:::-;9914:3;9907:37;9832:118;;:::o;9956:222::-;10049:4;10087:2;10076:9;10072:18;10064:26;;10100:71;10168:1;10157:9;10153:17;10144:6;10100:71;:::i;:::-;9956:222;;;;:::o;10184:99::-;10236:6;10270:5;10264:12;10254:22;;10184:99;;;:::o;10289:169::-;10373:11;10407:6;10402:3;10395:19;10447:4;10442:3;10438:14;10423:29;;10289:169;;;;:::o;10464:307::-;10532:1;10542:113;10556:6;10553:1;10550:13;10542:113;;;10641:1;10636:3;10632:11;10626:18;10622:1;10617:3;10613:11;10606:39;10578:2;10575:1;10571:10;10566:15;;10542:113;;;10673:6;10670:1;10667:13;10664:101;;;10753:1;10744:6;10739:3;10735:16;10728:27;10664:101;10513:258;10464:307;;;:::o;10777:364::-;10865:3;10893:39;10926:5;10893:39;:::i;:::-;10948:71;11012:6;11007:3;10948:71;:::i;:::-;10941:78;;11028:52;11073:6;11068:3;11061:4;11054:5;11050:16;11028:52;:::i;:::-;11105:29;11127:6;11105:29;:::i;:::-;11100:3;11096:39;11089:46;;10869:272;10777:364;;;;:::o;11147:118::-;11234:24;11252:5;11234:24;:::i;:::-;11229:3;11222:37;11147:118;;:::o;11271:735::-;11488:4;11526:3;11515:9;11511:19;11503:27;;11540:71;11608:1;11597:9;11593:17;11584:6;11540:71;:::i;:::-;11658:9;11652:4;11648:20;11643:2;11632:9;11628:18;11621:48;11686:78;11759:4;11750:6;11686:78;:::i;:::-;11678:86;;11811:9;11805:4;11801:20;11796:2;11785:9;11781:18;11774:48;11839:78;11912:4;11903:6;11839:78;:::i;:::-;11831:86;;11927:72;11995:2;11984:9;11980:18;11971:6;11927:72;:::i;:::-;11271:735;;;;;;;:::o;12012:533::-;12181:4;12219:2;12208:9;12204:18;12196:26;;12232:71;12300:1;12289:9;12285:17;12276:6;12232:71;:::i;:::-;12350:9;12344:4;12340:20;12335:2;12324:9;12320:18;12313:48;12378:78;12451:4;12442:6;12378:78;:::i;:::-;12370:86;;12466:72;12534:2;12523:9;12519:18;12510:6;12466:72;:::i;:::-;12012:533;;;;;;:::o;12551:148::-;12653:11;12690:3;12675:18;;12551:148;;;;:::o;12705:214::-;12845:66;12841:1;12833:6;12829:14;12822:90;12705:214;:::o;12925:400::-;13085:3;13106:84;13188:1;13183:3;13106:84;:::i;:::-;13099:91;;13199:93;13288:3;13199:93;:::i;:::-;13317:1;13312:3;13308:11;13301:18;;12925:400;;;:::o;13331:79::-;13370:7;13399:5;13388:16;;13331:79;;;:::o;13416:157::-;13521:45;13541:24;13559:5;13541:24;:::i;:::-;13521:45;:::i;:::-;13516:3;13509:58;13416:157;;:::o;13579:663::-;13820:3;13842:148;13986:3;13842:148;:::i;:::-;13835:155;;14000:75;14071:3;14062:6;14000:75;:::i;:::-;14100:2;14095:3;14091:12;14084:19;;14113:75;14184:3;14175:6;14113:75;:::i;:::-;14213:2;14208:3;14204:12;14197:19;;14233:3;14226:10;;13579:663;;;;;:::o;14248:98::-;14299:6;14333:5;14327:12;14317:22;;14248:98;;;:::o;14352:168::-;14435:11;14469:6;14464:3;14457:19;14509:4;14504:3;14500:14;14485:29;;14352:168;;;;:::o;14526:360::-;14612:3;14640:38;14672:5;14640:38;:::i;:::-;14694:70;14757:6;14752:3;14694:70;:::i;:::-;14687:77;;14773:52;14818:6;14813:3;14806:4;14799:5;14795:16;14773:52;:::i;:::-;14850:29;14872:6;14850:29;:::i;:::-;14845:3;14841:39;14834:46;;14616:270;14526:360;;;;:::o;14892:419::-;15031:4;15069:2;15058:9;15054:18;15046:26;;15082:71;15150:1;15139:9;15135:17;15126:6;15082:71;:::i;:::-;15200:9;15194:4;15190:20;15185:2;15174:9;15170:18;15163:48;15228:76;15299:4;15290:6;15228:76;:::i;:::-;15220:84;;14892:419;;;;;:::o;15317:149::-;15353:7;15393:66;15386:5;15382:78;15371:89;;15317:149;;;:::o;15472:120::-;15544:23;15561:5;15544:23;:::i;:::-;15537:5;15534:34;15524:62;;15582:1;15579;15572:12;15524:62;15472:120;:::o;15598:141::-;15654:5;15685:6;15679:13;15670:22;;15701:32;15727:5;15701:32;:::i;:::-;15598:141;;;;:::o;15745:349::-;15814:6;15863:2;15851:9;15842:7;15838:23;15834:32;15831:119;;;15869:79;;:::i;:::-;15831:119;15989:1;16014:63;16069:7;16060:6;16049:9;16045:22;16014:63;:::i;:::-;16004:73;;15960:127;15745:349;;;;:::o;16100:167::-;16240:19;16236:1;16228:6;16224:14;16217:43;16100:167;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:86::-;17105:7;17145:4;17138:5;17134:16;17123:27;;17070:86;;;:::o;17162:180::-;17210:77;17207:1;17200:88;17307:4;17304:1;17297:15;17331:4;17328:1;17321:15;17348:237;17386:3;17405:18;17421:1;17405:18;:::i;:::-;17400:23;;17437:18;17453:1;17437:18;:::i;:::-;17432:23;;17527:1;17521:4;17517:12;17514:1;17511:19;17508:45;;;17533:18;;:::i;:::-;17508:45;17577:1;17574;17570:9;17563:16;;17348:237;;;;:::o;17591:112::-;17674:22;17690:5;17674:22;:::i;:::-;17669:3;17662:35;17591:112;;:::o;17709:545::-;17882:4;17920:3;17909:9;17905:19;17897:27;;17934:71;18002:1;17991:9;17987:17;17978:6;17934:71;:::i;:::-;18015:68;18079:2;18068:9;18064:18;18055:6;18015:68;:::i;:::-;18093:72;18161:2;18150:9;18146:18;18137:6;18093:72;:::i;:::-;18175;18243:2;18232:9;18228:18;18219:6;18175:72;:::i;:::-;17709:545;;;;;;;:::o"},"methodIdentifiers":{"GET_EIP712DOMAIN_PACKETHASH((string,string,uint256))":"4bc39162","GET_PERSON_PACKETHASH((string,uint256))":"8f4f876a","getDomainHash()":"83ebb771","verifySignedPerson((bytes,address,(string,uint256)))":"ea23cf6e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct EIP712Domain\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_EIP712DOMAIN_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_PERSON_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"message\",\"type\":\"tuple\"}],\"internalType\":\"struct signedPerson\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"verifySignedPerson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MockEIP712Decoder.sol\":\"MockEIP712Decoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]},\"contracts/MockEIP712Decoder.sol\":{\"keccak256\":\"0x3df7d3bcc426f4cc9a885837894fcfcbded0501d432e9c0daf22a50fd6b7adbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdded3599c28aef545f3d76186f3339079324bc87a1548e5e3678ff584fe24c7\",\"dweb:/ipfs/QmRyyBE978N8P4C4nq4yF5M3GSd3hgXYQ8m3VHVvXyLDmA\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json index 4129a3e..3cfa10d 100644 --- a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json +++ b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/1c3c8280f8c7e292e7e737090d74a297.json" + "buildInfo": "../../build-info/f82bff085b4f4ec6cd79ef560ec72a99.json" } diff --git a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json index b321d9d..1e0ebd2 100644 --- a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json +++ b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json @@ -143,8 +143,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506040516200105b3803806200105b83398181016040528101906200003791906200014d565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e6040518060400160405280601181526020017f4d6f636b4549503731324465636f646572000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001620000ea959493929190620001f0565b60405160208183030381529060405280519060200120600081905550506200024d565b600080fd5b6000819050919050565b620001278162000112565b81146200013357600080fd5b50565b60008151905062000147816200011c565b92915050565b6000602082840312156200016657620001656200010d565b5b6000620001768482850162000136565b91505092915050565b6000819050919050565b62000194816200017f565b82525050565b620001a58162000112565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001d882620001ab565b9050919050565b620001ea81620001cb565b82525050565b600060a08201905062000207600083018862000189565b62000216602083018762000189565b62000225604083018662000189565b6200023460608301856200019a565b620002436080830184620001df565b9695505050505050565b610dfe806200025d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220ca0a05a510565d9ee49471de5fd24a13ae81e1ff3aee845a020d6cb87285bdc764736f6c634300080d0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220ca0a05a510565d9ee49471de5fd24a13ae81e1ff3aee845a020d6cb87285bdc764736f6c634300080d0033", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200105b3803806200105b83398181016040528101906200003791906200014d565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e6040518060400160405280601181526020017f4d6f636b4549503731324465636f646572000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001620000ea959493929190620001f0565b60405160208183030381529060405280519060200120600081905550506200024d565b600080fd5b6000819050919050565b620001278162000112565b81146200013357600080fd5b50565b60008151905062000147816200011c565b92915050565b6000602082840312156200016657620001656200010d565b5b6000620001768482850162000136565b91505092915050565b6000819050919050565b62000194816200017f565b82525050565b620001a58162000112565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001d882620001ab565b9050919050565b620001ea81620001cb565b82525050565b600060a08201905062000207600083018862000189565b62000216602083018762000189565b62000225604083018662000189565b6200023460608301856200019a565b620002436080830184620001df565b9695505050505050565b610dfe806200025d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220727963e7949d6f78225b2482c84bbede19287195a8eb16afd46db7afea89f86364736f6c634300080d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220727963e7949d6f78225b2482c84bbede19287195a8eb16afd46db7afea89f86364736f6c634300080d0033", "linkReferences": {}, "deployedLinkReferences": {} } From e815f40fd8c4262d3d047564c63d567e6ce736ca Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 17:14:03 -0700 Subject: [PATCH 13/19] fiddling in case. Gonna need to do some careful debugging to make this work. --- contracts/MockEIP712Decoder.sol | 2 +- test.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/MockEIP712Decoder.sol b/contracts/MockEIP712Decoder.sol index e719bae..fdb0f84 100644 --- a/contracts/MockEIP712Decoder.sol +++ b/contracts/MockEIP712Decoder.sol @@ -10,7 +10,7 @@ contract MockEIP712Decoder is EIP712Decoder { EIP712DOMAIN_TYPEHASH, keccak256(bytes("MockEIP712Decoder")), keccak256(bytes("1")), - uint256(chainId), + chainId, address(this) )); } diff --git a/test.js b/test.js index e9e3578..d74da3e 100644 --- a/test.js +++ b/test.js @@ -30,7 +30,7 @@ const message = { types: MessageTypes, primaryType: 'Person', domain: { - name: 'Test Domain', + name: 'MockEIP712Decoder', version: '1', chainId: 1, }, @@ -50,7 +50,7 @@ fs.writeFileSync('./contracts/EIP712Decoder.sol', solidityCode); // Run the tests describe('EIP712Decoder', function () { - let contract, accounts, signer, typedData, eip712Decoder, privateKey; + let contract, accounts, signer, typedData, eip712Decoder, privateKey, wallet; before(async function () { // Compile the contract using Hardhat @@ -60,7 +60,7 @@ describe('EIP712Decoder', function () { const ganacheProvider = ganache.provider({}) const provider = new ethers.providers.Web3Provider(ganacheProvider); const mnemonic = ganacheProvider.options.mnemonic; - const wallet = ethers.Wallet.fromMnemonic(mnemonic); + wallet = ethers.Wallet.fromMnemonic(mnemonic); privateKey = wallet.privateKey; accounts = await provider.listAccounts(); signer = provider.getSigner(accounts[0]); @@ -85,7 +85,7 @@ describe('EIP712Decoder', function () { const isValid = await contract.verifySignedPerson(signedStruct); // Check if the signer is valid - expect(isValid).to.equal(accounts[0]); + expect(isValid).to.equal(wallet.address); }); }); From 9a5491c7aa5bbe6f1809318f9aabfbe1e01f7e84 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 21:01:26 -0700 Subject: [PATCH 14/19] Remove artifacts --- .../21fa6fc66024836561f3d36a91b0eddc.json | 1 - .../EIP712Decoder.sol/EIP712Decoder.dbg.json | 4 - .../EIP712Decoder.sol/EIP712Decoder.json | 139 ---------------- .../ERC1271Contract.dbg.json | 4 - .../EIP712Decoder.sol/ERC1271Contract.json | 35 ---- .../MockEIP712Decoder.dbg.json | 4 - .../MockEIP712Decoder.json | 150 ------------------ 7 files changed, 337 deletions(-) delete mode 100644 artifacts/build-info/21fa6fc66024836561f3d36a91b0eddc.json delete mode 100644 artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.dbg.json delete mode 100644 artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.json delete mode 100644 artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.dbg.json delete mode 100644 artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.json delete mode 100644 artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json delete mode 100644 artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json diff --git a/artifacts/build-info/21fa6fc66024836561f3d36a91b0eddc.json b/artifacts/build-info/21fa6fc66024836561f3d36a91b0eddc.json deleted file mode 100644 index a2ee841..0000000 --- a/artifacts/build-info/21fa6fc66024836561f3d36a91b0eddc.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"21fa6fc66024836561f3d36a91b0eddc","_format":"hh-sol-build-info-1","solcVersion":"0.8.13","solcLongVersion":"0.8.13+commit.abaa5c0e","input":{"language":"Solidity","sources":{"contracts/EIP712Decoder.sol":{"content":"pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n\n\nstruct EIP712Domain {\n string name;\n string version;\n uint256 chainId;\n}\n\nbytes32 constant EIP712DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,string version,uint256 chainId)\");\n\n\nstruct signedPerson {\n bytes signature;\n address signer;\n Person message;\n}\n\n\nstruct Person {\n string name;\n uint256 age;\n}\n\nbytes32 constant PERSON_TYPEHASH = keccak256(\"Person(string name,uint256 age)\");\n\n\nabstract contract ERC1271Contract {\n\n // bytes4(keccak256(\"isValidSignature(bytes32,bytes)\")\n bytes4 constant internal MAGICVALUE = 0x1626ba7e;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n virtual\n returns (bytes4 magicValue);\n}\n\nabstract contract EIP712Decoder {\n function getDomainHash () public view virtual returns (bytes32);\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n\n function GET_EIP712DOMAIN_PACKETHASH (EIP712Domain memory _input) public pure returns (bytes32) {\n \n bytes memory encoded = abi.encode(\n EIP712DOMAIN_TYPEHASH,\n _input.name,\n _input.version,\n _input.chainId\n );\n \n return keccak256(encoded);\n }\n\n function GET_PERSON_PACKETHASH (Person memory _input) public pure returns (bytes32) {\n \n bytes memory encoded = abi.encode(\n PERSON_TYPEHASH,\n _input.name,\n _input.age\n );\n \n return keccak256(encoded);\n }\n\n function verifySignedPerson(signedPerson memory _input) public view returns (address) {\n bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainHash(),\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n \n\n}\n\n"},"contracts/MockEIP712Decoder.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.13;\n\nimport \"./EIP712Decoder.sol\";\n\ncontract MockEIP712Decoder is EIP712Decoder {\n bytes32 domainHash;\n constructor(uint256 chainId) {\n domainHash = keccak256(abi.encode(\n EIP712DOMAIN_TYPEHASH,\n keccak256(bytes(\"MockEIP712Decoder\")),\n keccak256(bytes(\"1\")),\n uint256(chainId),\n address(this),\n bytes32(uint256(0))\n ));\n }\n\n function getDomainHash () public view override returns (bytes32) {\n return domainHash;\n }\n}\n"}},"settings":{"optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/EIP712Decoder.sol":{"ast":{"absolutePath":"contracts/EIP712Decoder.sol","exportedSymbols":{"EIP712DOMAIN_TYPEHASH":[13],"EIP712Decoder":[233],"EIP712Domain":[8],"ERC1271Contract":[45],"PERSON_TYPEHASH":[31],"Person":[26],"signedPerson":[21]},"id":234,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".13"],"nodeType":"PragmaDirective","src":"0:24:0"},{"canonicalName":"EIP712Domain","id":8,"members":[{"constant":false,"id":3,"mutability":"mutable","name":"name","nameLocation":"90:4:0","nodeType":"VariableDeclaration","scope":8,"src":"83:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2,"name":"string","nodeType":"ElementaryTypeName","src":"83:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"version","nameLocation":"105:7:0","nodeType":"VariableDeclaration","scope":8,"src":"98:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4,"name":"string","nodeType":"ElementaryTypeName","src":"98:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"chainId","nameLocation":"124:7:0","nodeType":"VariableDeclaration","scope":8,"src":"116:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"116:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"EIP712Domain","nameLocation":"66:12:0","nodeType":"StructDefinition","scope":234,"src":"59:75:0","visibility":"public"},{"constant":true,"id":13,"mutability":"constant","name":"EIP712DOMAIN_TYPEHASH","nameLocation":"153:21:0","nodeType":"VariableDeclaration","scope":234,"src":"136:110:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e496429","id":11,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"187:58:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""},"value":"EIP712Domain(string name,string version,uint256 chainId)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""}],"id":10,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"177:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"177:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"canonicalName":"signedPerson","id":21,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"signature","nameLocation":"280:9:0","nodeType":"VariableDeclaration","scope":21,"src":"274:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":14,"name":"bytes","nodeType":"ElementaryTypeName","src":"274:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"signer","nameLocation":"301:6:0","nodeType":"VariableDeclaration","scope":21,"src":"293:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"message","nameLocation":"318:7:0","nodeType":"VariableDeclaration","scope":21,"src":"311:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"},"typeName":{"id":19,"nodeType":"UserDefinedTypeName","pathNode":{"id":18,"name":"Person","nodeType":"IdentifierPath","referencedDeclaration":26,"src":"311:6:0"},"referencedDeclaration":26,"src":"311:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"}},"visibility":"internal"}],"name":"signedPerson","nameLocation":"257:12:0","nodeType":"StructDefinition","scope":234,"src":"250:78:0","visibility":"public"},{"canonicalName":"Person","id":26,"members":[{"constant":false,"id":23,"mutability":"mutable","name":"name","nameLocation":"356:4:0","nodeType":"VariableDeclaration","scope":26,"src":"349:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22,"name":"string","nodeType":"ElementaryTypeName","src":"349:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"age","nameLocation":"372:3:0","nodeType":"VariableDeclaration","scope":26,"src":"364:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Person","nameLocation":"338:6:0","nodeType":"StructDefinition","scope":234,"src":"331:47:0","visibility":"public"},{"constant":true,"id":31,"mutability":"constant","name":"PERSON_TYPEHASH","nameLocation":"397:15:0","nodeType":"VariableDeclaration","scope":234,"src":"380:79:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27,"name":"bytes32","nodeType":"ElementaryTypeName","src":"380:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"506572736f6e28737472696e67206e616d652c75696e743235362061676529","id":29,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"425:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db","typeString":"literal_string \"Person(string name,uint256 age)\""},"value":"Person(string name,uint256 age)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db","typeString":"literal_string \"Person(string name,uint256 age)\""}],"id":28,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"415:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":30,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"415:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1271Contract","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":45,"linearizedBaseContracts":[45],"name":"ERC1271Contract","nameLocation":"481:15:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":34,"mutability":"constant","name":"MAGICVALUE","nameLocation":"584:10:0","nodeType":"VariableDeclaration","scope":45,"src":"559:48:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32,"name":"bytes4","nodeType":"ElementaryTypeName","src":"559:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783136323662613765","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"597:10:0","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"visibility":"internal"},{"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"612:414:0","text":" @dev Should return whether the signature provided is valid for the provided hash\n @param _hash Hash of the data to be signed\n @param _signature Signature byte array associated with _hash\n MUST return the bytes4 magic value 0x1626ba7e when function passes.\n MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n MUST allow external calls"},"functionSelector":"1626ba7e","id":44,"implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"1039:16:0","nodeType":"FunctionDefinition","parameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37,"mutability":"mutable","name":"_hash","nameLocation":"1069:5:0","nodeType":"VariableDeclaration","scope":44,"src":"1061:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1061:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39,"mutability":"mutable","name":"_signature","nameLocation":"1094:10:0","nodeType":"VariableDeclaration","scope":44,"src":"1081:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38,"name":"bytes","nodeType":"ElementaryTypeName","src":"1081:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1055:50:0"},"returnParameters":{"id":43,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42,"mutability":"mutable","name":"magicValue","nameLocation":"1159:10:0","nodeType":"VariableDeclaration","scope":44,"src":"1152:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1152:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1151:19:0"},"scope":45,"src":"1030:141:0","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":234,"src":"463:710:0","usedErrors":[]},{"abstract":true,"baseContracts":[],"canonicalName":"EIP712Decoder","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":233,"linearizedBaseContracts":[233],"name":"EIP712Decoder","nameLocation":"1193:13:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"83ebb771","id":50,"implemented":false,"kind":"function","modifiers":[],"name":"getDomainHash","nameLocation":"1220:13:0","nodeType":"FunctionDefinition","parameters":{"id":46,"nodeType":"ParameterList","parameters":[],"src":"1234:2:0"},"returnParameters":{"id":49,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50,"src":"1266:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1266:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1265:9:0"},"scope":233,"src":"1211:64:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":114,"nodeType":"Block","src":"1630:621:0","statements":[{"assignments":[61],"declarations":[{"constant":false,"id":61,"mutability":"mutable","name":"r","nameLocation":"1644:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1636:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1636:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":62,"nodeType":"VariableDeclarationStatement","src":"1636:9:0"},{"assignments":[64],"declarations":[{"constant":false,"id":64,"mutability":"mutable","name":"s","nameLocation":"1659:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1651:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":63,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1651:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":65,"nodeType":"VariableDeclarationStatement","src":"1651:9:0"},{"assignments":[67],"declarations":[{"constant":false,"id":67,"mutability":"mutable","name":"v","nameLocation":"1672:1:0","nodeType":"VariableDeclaration","scope":114,"src":"1666:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":66,"name":"uint8","nodeType":"ElementaryTypeName","src":"1666:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":68,"nodeType":"VariableDeclarationStatement","src":"1666:7:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":69,"name":"sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55,"src":"1718:3:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1718:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3635","id":71,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1732:2:0","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"1718:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80,"nodeType":"IfStatement","src":"1714:56:0","trueBody":{"id":79,"nodeType":"Block","src":"1736:34:0","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":75,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1760:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1752:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1752:7:0","typeDescriptions":{}}},"id":76,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1752:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":77,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1751:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":78,"nodeType":"Return","src":"1744:19:0"}]}},{"AST":{"nodeType":"YulBlock","src":"1837:109:0","statements":[{"nodeType":"YulAssignment","src":"1845:24:0","value":{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1860:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1865:2:0","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1856:3:0"},"nodeType":"YulFunctionCall","src":"1856:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1850:5:0"},"nodeType":"YulFunctionCall","src":"1850:19:0"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1845:1:0"}]},{"nodeType":"YulAssignment","src":"1876:24:0","value":{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1891:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1896:2:0","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1887:3:0"},"nodeType":"YulFunctionCall","src":"1887:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1881:5:0"},"nodeType":"YulFunctionCall","src":"1881:19:0"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"1876:1:0"}]},{"nodeType":"YulAssignment","src":"1907:33:0","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1917:1:0","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"sig","nodeType":"YulIdentifier","src":"1930:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"1935:2:0","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1926:3:0"},"nodeType":"YulFunctionCall","src":"1926:12:0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1920:5:0"},"nodeType":"YulFunctionCall","src":"1920:19:0"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1912:4:0"},"nodeType":"YulFunctionCall","src":"1912:28:0"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"1907:1:0"}]}]},"evmVersion":"london","externalReferences":[{"declaration":61,"isOffset":false,"isSlot":false,"src":"1845:1:0","valueSize":1},{"declaration":64,"isOffset":false,"isSlot":false,"src":"1876:1:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1860:3:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1891:3:0","valueSize":1},{"declaration":55,"isOffset":false,"isSlot":false,"src":"1930:3:0","valueSize":1},{"declaration":67,"isOffset":false,"isSlot":false,"src":"1907:1:0","valueSize":1}],"id":81,"nodeType":"InlineAssembly","src":"1828:118:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":84,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2042:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3237","id":83,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2042:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":90,"nodeType":"IfStatement","src":"2038:34:0","trueBody":{"id":89,"nodeType":"Block","src":"2050:22:0","statements":[{"expression":{"id":87,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2058:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3237","id":86,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2063:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2058:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":88,"nodeType":"ExpressionStatement","src":"2058:7:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":97,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":93,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2141:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3237","id":92,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2146:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2141:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":96,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":94,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2152:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3238","id":95,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"2152:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2141:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":112,"nodeType":"Block","src":"2201:46:0","statements":[{"expression":{"arguments":[{"id":106,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"2226:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":107,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2232:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":108,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"2235:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"2238:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":105,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"2216:9:0","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2216:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":111,"nodeType":"Return","src":"2209:31:0"}]},"id":113,"nodeType":"IfStatement","src":"2137:110:0","trueBody":{"id":104,"nodeType":"Block","src":"2161:34:0","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2185:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":99,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2177:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":98,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:0","typeDescriptions":{}}},"id":101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2177:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":102,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2176:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59,"id":103,"nodeType":"Return","src":"2169:19:0"}]}}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1279:267:0","text":" @dev Recover signer address from a message by using their signature\n @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n @param sig bytes signature, the signature is generated using web3.eth.sign()"},"id":115,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"1558:7:0","nodeType":"FunctionDefinition","parameters":{"id":56,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53,"mutability":"mutable","name":"hash","nameLocation":"1574:4:0","nodeType":"VariableDeclaration","scope":115,"src":"1566:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1566:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55,"mutability":"mutable","name":"sig","nameLocation":"1593:3:0","nodeType":"VariableDeclaration","scope":115,"src":"1580:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1565:32:0"},"returnParameters":{"id":59,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":115,"src":"1621:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57,"name":"address","nodeType":"ElementaryTypeName","src":"1621:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1620:9:0"},"scope":233,"src":"1549:702:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":140,"nodeType":"Block","src":"2351:183:0","statements":[{"assignments":[124],"declarations":[{"constant":false,"id":124,"mutability":"mutable","name":"encoded","nameLocation":"2375:7:0","nodeType":"VariableDeclaration","scope":140,"src":"2362:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":123,"name":"bytes","nodeType":"ElementaryTypeName","src":"2362:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":135,"initialValue":{"arguments":[{"id":127,"name":"EIP712DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"2403:21:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":128,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2432:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":3,"src":"2432:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":130,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2451:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":5,"src":"2451:14:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":132,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"2473:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain memory"}},"id":133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":7,"src":"2473:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2385:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2385:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2385:108:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2362:131:0"},{"expression":{"arguments":[{"id":137,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"2521:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":136,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2511:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2511:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":122,"id":139,"nodeType":"Return","src":"2504:25:0"}]},"functionSelector":"4bc39162","id":141,"implemented":true,"kind":"function","modifiers":[],"name":"GET_EIP712DOMAIN_PACKETHASH","nameLocation":"2264:27:0","nodeType":"FunctionDefinition","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"_input","nameLocation":"2313:6:0","nodeType":"VariableDeclaration","scope":141,"src":"2293:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_memory_ptr","typeString":"struct EIP712Domain"},"typeName":{"id":117,"nodeType":"UserDefinedTypeName","pathNode":{"id":116,"name":"EIP712Domain","nodeType":"IdentifierPath","referencedDeclaration":8,"src":"2293:12:0"},"referencedDeclaration":8,"src":"2293:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_EIP712Domain_$8_storage_ptr","typeString":"struct EIP712Domain"}},"visibility":"internal"}],"src":"2292:28:0"},"returnParameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":141,"src":"2342:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2342:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2341:9:0"},"scope":233,"src":"2255:279:0","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":164,"nodeType":"Block","src":"2622:151:0","statements":[{"assignments":[150],"declarations":[{"constant":false,"id":150,"mutability":"mutable","name":"encoded","nameLocation":"2646:7:0","nodeType":"VariableDeclaration","scope":164,"src":"2633:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":149,"name":"bytes","nodeType":"ElementaryTypeName","src":"2633:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":159,"initialValue":{"arguments":[{"id":153,"name":"PERSON_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"2674:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":154,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2697:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}},"id":155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"name","nodeType":"MemberAccess","referencedDeclaration":23,"src":"2697:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":156,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2716:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}},"id":157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"age","nodeType":"MemberAccess","referencedDeclaration":25,"src":"2716:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2656:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2656:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2656:76:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2633:99:0"},{"expression":{"arguments":[{"id":161,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"2760:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":160,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2750:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2750:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":148,"id":163,"nodeType":"Return","src":"2743:25:0"}]},"functionSelector":"8f4f876a","id":165,"implemented":true,"kind":"function","modifiers":[],"name":"GET_PERSON_PACKETHASH","nameLocation":"2547:21:0","nodeType":"FunctionDefinition","parameters":{"id":145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":144,"mutability":"mutable","name":"_input","nameLocation":"2584:6:0","nodeType":"VariableDeclaration","scope":165,"src":"2570:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person"},"typeName":{"id":143,"nodeType":"UserDefinedTypeName","pathNode":{"id":142,"name":"Person","nodeType":"IdentifierPath","referencedDeclaration":26,"src":"2570:6:0"},"referencedDeclaration":26,"src":"2570:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_storage_ptr","typeString":"struct Person"}},"visibility":"internal"}],"src":"2569:22:0"},"returnParameters":{"id":148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":165,"src":"2613:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2613:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2612:9:0"},"scope":233,"src":"2538:235:0","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":231,"nodeType":"Block","src":"2865:682:0","statements":[{"assignments":[174],"declarations":[{"constant":false,"id":174,"mutability":"mutable","name":"packetHash","nameLocation":"2881:10:0","nodeType":"VariableDeclaration","scope":231,"src":"2873:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2873:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":179,"initialValue":{"arguments":[{"expression":{"id":176,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2916:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"message","nodeType":"MemberAccess","referencedDeclaration":20,"src":"2916:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Person_$26_memory_ptr","typeString":"struct Person memory"}],"id":175,"name":"GET_PERSON_PACKETHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"2894:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Person_$26_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Person memory) pure returns (bytes32)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2894:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2873:58:0"},{"assignments":[181],"declarations":[{"constant":false,"id":181,"mutability":"mutable","name":"digest","nameLocation":"2947:6:0","nodeType":"VariableDeclaration","scope":231,"src":"2939:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2939:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":191,"initialValue":{"arguments":[{"arguments":[{"hexValue":"1901","id":185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3003:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":186,"name":"getDomainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50,"src":"3025:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3025:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":188,"name":"packetHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"3052:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2975:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2975:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2975:97:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":182,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2956:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2956:124:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2939:141:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":192,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3093:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3093:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030","id":194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000000"},"src":"3093:59:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":229,"nodeType":"Block","src":"3300:241:0","statements":[{"assignments":[208],"declarations":[{"constant":false,"id":208,"mutability":"mutable","name":"result","nameLocation":"3360:6:0","nodeType":"VariableDeclaration","scope":229,"src":"3353:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":207,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3353:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":218,"initialValue":{"arguments":[{"id":214,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"3417:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":215,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3425:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":15,"src":"3425:16:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":210,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3385:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3385:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":209,"name":"ERC1271Contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"3369:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1271Contract_$45_$","typeString":"type(contract ERC1271Contract)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3369:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC1271Contract_$45","typeString":"contract ERC1271Contract"}},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":44,"src":"3369:47:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes32,bytes memory) view external returns (bytes4)"}},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3369:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3353:89:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":220,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3460:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783136323662613765","id":221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3470:10:0","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"src":"3460:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4154555245","id":223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3482:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""},"value":"INVALID_SIGNATURE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","typeString":"literal_string \"INVALID_SIGNATURE\""}],"id":219,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3452:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3452:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":225,"nodeType":"ExpressionStatement","src":"3452:50:0"},{"expression":{"expression":{"id":226,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3519:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":17,"src":"3519:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":172,"id":228,"nodeType":"Return","src":"3512:20:0"}]},"id":230,"nodeType":"IfStatement","src":"3089:452:0","trueBody":{"id":206,"nodeType":"Block","src":"3154:140:0","statements":[{"assignments":[197],"declarations":[{"constant":false,"id":197,"mutability":"mutable","name":"recoveredSigner","nameLocation":"3172:15:0","nodeType":"VariableDeclaration","scope":206,"src":"3164:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":196,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":203,"initialValue":{"arguments":[{"id":199,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"3209:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":200,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"3227:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson memory"}},"id":201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":15,"src":"3227:16:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":198,"name":"recover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"3190:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3190:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3164:89:0"},{"expression":{"id":204,"name":"recoveredSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"3270:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":172,"id":205,"nodeType":"Return","src":"3263:22:0"}]}}]},"functionSelector":"ea23cf6e","id":232,"implemented":true,"kind":"function","modifiers":[],"name":"verifySignedPerson","nameLocation":"2788:18:0","nodeType":"FunctionDefinition","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":168,"mutability":"mutable","name":"_input","nameLocation":"2827:6:0","nodeType":"VariableDeclaration","scope":232,"src":"2807:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_memory_ptr","typeString":"struct signedPerson"},"typeName":{"id":167,"nodeType":"UserDefinedTypeName","pathNode":{"id":166,"name":"signedPerson","nodeType":"IdentifierPath","referencedDeclaration":21,"src":"2807:12:0"},"referencedDeclaration":21,"src":"2807:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_signedPerson_$21_storage_ptr","typeString":"struct signedPerson"}},"visibility":"internal"}],"src":"2806:28:0"},"returnParameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":232,"src":"2856:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"2856:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2855:9:0"},"scope":233,"src":"2779:768:0","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":234,"src":"1175:2378:0","usedErrors":[]}],"src":"0:3555:0"},"id":0},"contracts/MockEIP712Decoder.sol":{"ast":{"absolutePath":"contracts/MockEIP712Decoder.sol","exportedSymbols":{"EIP712DOMAIN_TYPEHASH":[13],"EIP712Decoder":[233],"EIP712Domain":[8],"ERC1271Contract":[45],"MockEIP712Decoder":[292],"PERSON_TYPEHASH":[31],"Person":[26],"signedPerson":[21]},"id":293,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":235,"literals":["solidity","^","0.8",".13"],"nodeType":"PragmaDirective","src":"32:24:1"},{"absolutePath":"contracts/EIP712Decoder.sol","file":"./EIP712Decoder.sol","id":236,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":293,"sourceUnit":234,"src":"58:29:1","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":237,"name":"EIP712Decoder","nodeType":"IdentifierPath","referencedDeclaration":233,"src":"119:13:1"},"id":238,"nodeType":"InheritanceSpecifier","src":"119:13:1"}],"canonicalName":"MockEIP712Decoder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":292,"linearizedBaseContracts":[292,233],"name":"MockEIP712Decoder","nameLocation":"98:17:1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":240,"mutability":"mutable","name":"domainHash","nameLocation":"147:10:1","nodeType":"VariableDeclaration","scope":292,"src":"139:18:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":281,"nodeType":"Block","src":"192:272:1","statements":[{"expression":{"id":279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":245,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"202:10:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":249,"name":"EIP712DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"249:21:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"4d6f636b4549503731324465636f646572","id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"300:19:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_a65f75c936afe6c491d5e9cb93ab6ad919c55c9fa1339716b8ab51aa1c9d7fec","typeString":"literal_string \"MockEIP712Decoder\""},"value":"MockEIP712Decoder"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a65f75c936afe6c491d5e9cb93ab6ad919c55c9fa1339716b8ab51aa1c9d7fec","typeString":"literal_string \"MockEIP712Decoder\""}],"id":252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"294:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":251,"name":"bytes","nodeType":"ElementaryTypeName","src":"294:5:1","typeDescriptions":{}}},"id":254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"294:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":250,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"284:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"284:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"31","id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"351:3:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"345:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":257,"name":"bytes","nodeType":"ElementaryTypeName","src":"345:5:1","typeDescriptions":{}}},"id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"345:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":256,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"335:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"335:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":264,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"378:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"370:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":262,"name":"uint256","nodeType":"ElementaryTypeName","src":"370:7:1","typeDescriptions":{}}},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"370:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":268,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"408:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_MockEIP712Decoder_$292","typeString":"contract MockEIP712Decoder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockEIP712Decoder_$292","typeString":"contract MockEIP712Decoder"}],"id":267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"400:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":266,"name":"address","nodeType":"ElementaryTypeName","src":"400:7:1","typeDescriptions":{}}},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"400:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"30","id":274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"443:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"435:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":272,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:1","typeDescriptions":{}}},"id":275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"435:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"427:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"427:7:1","typeDescriptions":{}}},"id":276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"427:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"225:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"225:10:1","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"225:231:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":246,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"215:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"215:242:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"202:255:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":280,"nodeType":"ExpressionStatement","src":"202:255:1"}]},"id":282,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":242,"mutability":"mutable","name":"chainId","nameLocation":"183:7:1","nodeType":"VariableDeclaration","scope":282,"src":"175:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":241,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"174:17:1"},"returnParameters":{"id":244,"nodeType":"ParameterList","parameters":[],"src":"192:0:1"},"scope":292,"src":"163:301:1","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[50],"body":{"id":290,"nodeType":"Block","src":"535:34:1","statements":[{"expression":{"id":288,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"552:10:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":287,"id":289,"nodeType":"Return","src":"545:17:1"}]},"functionSelector":"83ebb771","id":291,"implemented":true,"kind":"function","modifiers":[],"name":"getDomainHash","nameLocation":"479:13:1","nodeType":"FunctionDefinition","overrides":{"id":284,"nodeType":"OverrideSpecifier","overrides":[],"src":"508:8:1"},"parameters":{"id":283,"nodeType":"ParameterList","parameters":[],"src":"493:2:1"},"returnParameters":{"id":287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":291,"src":"526:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"526:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"525:9:1"},"scope":292,"src":"470:99:1","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":293,"src":"89:482:1","usedErrors":[]}],"src":"32:540:1"},"id":1}},"contracts":{"contracts/EIP712Decoder.sol":{"EIP712Decoder":{"abi":[{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct EIP712Domain","name":"_input","type":"tuple"}],"name":"GET_EIP712DOMAIN_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"_input","type":"tuple"}],"name":"GET_PERSON_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"message","type":"tuple"}],"internalType":"struct signedPerson","name":"_input","type":"tuple"}],"name":"verifySignedPerson","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"GET_EIP712DOMAIN_PACKETHASH((string,string,uint256))":"4bc39162","GET_PERSON_PACKETHASH((string,uint256))":"8f4f876a","getDomainHash()":"83ebb771","verifySignedPerson((bytes,address,(string,uint256)))":"ea23cf6e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct EIP712Domain\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_EIP712DOMAIN_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_PERSON_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"message\",\"type\":\"tuple\"}],\"internalType\":\"struct signedPerson\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"verifySignedPerson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EIP712Decoder.sol\":\"EIP712Decoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]}},\"version\":1}"},"ERC1271Contract":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided hash\",\"params\":{\"_hash\":\"Hash of the data to be signed\",\"_signature\":\"Signature byte array associated with _hash MUST return the bytes4 magic value 0x1626ba7e when function passes. MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) MUST allow external calls\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EIP712Decoder.sol\":\"ERC1271Contract\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]}},\"version\":1}"}},"contracts/MockEIP712Decoder.sol":{"MockEIP712Decoder":{"abi":[{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"internalType":"struct EIP712Domain","name":"_input","type":"tuple"}],"name":"GET_EIP712DOMAIN_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"_input","type":"tuple"}],"name":"GET_PERSON_PACKETHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"age","type":"uint256"}],"internalType":"struct Person","name":"message","type":"tuple"}],"internalType":"struct signedPerson","name":"_input","type":"tuple"}],"name":"verifySignedPerson","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_282":{"entryPoint":null,"id":282,"parameterSlots":1,"returnSlots":0},"abi_decode_t_uint256_fromMemory":{"entryPoint":315,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":338,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":484,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":398,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":415,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed":{"entryPoint":501,"id":null,"parameterSlots":7,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":464,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":388,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":432,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":279,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":274,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":289,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2518:2","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:2","statements":[{"nodeType":"YulAssignment","src":"57:19:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:2","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:2"},"nodeType":"YulFunctionCall","src":"67:9:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:2"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:2","type":""}],"src":"7:75:2"},{"body":{"nodeType":"YulBlock","src":"177:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:2"},"nodeType":"YulFunctionCall","src":"187:12:2"},"nodeType":"YulExpressionStatement","src":"187:12:2"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:2"},{"body":{"nodeType":"YulBlock","src":"300:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:2"},"nodeType":"YulFunctionCall","src":"310:12:2"},"nodeType":"YulExpressionStatement","src":"310:12:2"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:2"},{"body":{"nodeType":"YulBlock","src":"379:32:2","statements":[{"nodeType":"YulAssignment","src":"389:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"400:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:2"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:2","type":""}],"src":"334:77:2"},{"body":{"nodeType":"YulBlock","src":"460:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"517:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"529:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:2"},"nodeType":"YulFunctionCall","src":"519:12:2"},"nodeType":"YulExpressionStatement","src":"519:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"483:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"508:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"490:17:2"},"nodeType":"YulFunctionCall","src":"490:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"480:2:2"},"nodeType":"YulFunctionCall","src":"480:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"473:6:2"},"nodeType":"YulFunctionCall","src":"473:43:2"},"nodeType":"YulIf","src":"470:63:2"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"453:5:2","type":""}],"src":"417:122:2"},{"body":{"nodeType":"YulBlock","src":"608:80:2","statements":[{"nodeType":"YulAssignment","src":"618:22:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"633:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"627:5:2"},"nodeType":"YulFunctionCall","src":"627:13:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"618:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"676:5:2"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"649:26:2"},"nodeType":"YulFunctionCall","src":"649:33:2"},"nodeType":"YulExpressionStatement","src":"649:33:2"}]},"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"586:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"594:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"602:5:2","type":""}],"src":"545:143:2"},{"body":{"nodeType":"YulBlock","src":"771:274:2","statements":[{"body":{"nodeType":"YulBlock","src":"817:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"819:77:2"},"nodeType":"YulFunctionCall","src":"819:79:2"},"nodeType":"YulExpressionStatement","src":"819:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"792:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"801:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"788:3:2"},"nodeType":"YulFunctionCall","src":"788:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"813:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"784:3:2"},"nodeType":"YulFunctionCall","src":"784:32:2"},"nodeType":"YulIf","src":"781:119:2"},{"nodeType":"YulBlock","src":"910:128:2","statements":[{"nodeType":"YulVariableDeclaration","src":"925:15:2","value":{"kind":"number","nodeType":"YulLiteral","src":"939:1:2","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"929:6:2","type":""}]},{"nodeType":"YulAssignment","src":"954:74:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1000:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"1011:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"996:3:2"},"nodeType":"YulFunctionCall","src":"996:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1020:7:2"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nodeType":"YulIdentifier","src":"964:31:2"},"nodeType":"YulFunctionCall","src":"964:64:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"954:6:2"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"741:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"752:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"764:6:2","type":""}],"src":"694:351:2"},{"body":{"nodeType":"YulBlock","src":"1096:32:2","statements":[{"nodeType":"YulAssignment","src":"1106:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"1117:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1106:7:2"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1078:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1088:7:2","type":""}],"src":"1051:77:2"},{"body":{"nodeType":"YulBlock","src":"1199:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1216:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1239:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"1221:17:2"},"nodeType":"YulFunctionCall","src":"1221:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1209:6:2"},"nodeType":"YulFunctionCall","src":"1209:37:2"},"nodeType":"YulExpressionStatement","src":"1209:37:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1187:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1194:3:2","type":""}],"src":"1134:118:2"},{"body":{"nodeType":"YulBlock","src":"1323:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1340:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1363:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1345:17:2"},"nodeType":"YulFunctionCall","src":"1345:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:2"},"nodeType":"YulFunctionCall","src":"1333:37:2"},"nodeType":"YulExpressionStatement","src":"1333:37:2"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1311:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1318:3:2","type":""}],"src":"1258:118:2"},{"body":{"nodeType":"YulBlock","src":"1427:81:2","statements":[{"nodeType":"YulAssignment","src":"1437:65:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1452:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"1459:42:2","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1448:3:2"},"nodeType":"YulFunctionCall","src":"1448:54:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1437:7:2"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1409:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1419:7:2","type":""}],"src":"1382:126:2"},{"body":{"nodeType":"YulBlock","src":"1559:51:2","statements":[{"nodeType":"YulAssignment","src":"1569:35:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1598:5:2"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"1580:17:2"},"nodeType":"YulFunctionCall","src":"1580:24:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1569:7:2"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1541:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1551:7:2","type":""}],"src":"1514:96:2"},{"body":{"nodeType":"YulBlock","src":"1681:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1698:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1721:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"1703:17:2"},"nodeType":"YulFunctionCall","src":"1703:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1691:6:2"},"nodeType":"YulFunctionCall","src":"1691:37:2"},"nodeType":"YulExpressionStatement","src":"1691:37:2"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1669:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1676:3:2","type":""}],"src":"1616:118:2"},{"body":{"nodeType":"YulBlock","src":"1978:537:2","statements":[{"nodeType":"YulAssignment","src":"1988:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2011:3:2","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1996:3:2"},"nodeType":"YulFunctionCall","src":"1996:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1988:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2069:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2082:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2093:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2078:3:2"},"nodeType":"YulFunctionCall","src":"2078:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2025:43:2"},"nodeType":"YulFunctionCall","src":"2025:71:2"},"nodeType":"YulExpressionStatement","src":"2025:71:2"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2150:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2163:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2174:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:2"},"nodeType":"YulFunctionCall","src":"2159:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2106:43:2"},"nodeType":"YulFunctionCall","src":"2106:72:2"},"nodeType":"YulExpressionStatement","src":"2106:72:2"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2232:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2245:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2256:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2241:3:2"},"nodeType":"YulFunctionCall","src":"2241:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2188:43:2"},"nodeType":"YulFunctionCall","src":"2188:72:2"},"nodeType":"YulExpressionStatement","src":"2188:72:2"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2314:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2327:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2338:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2323:3:2"},"nodeType":"YulFunctionCall","src":"2323:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2270:43:2"},"nodeType":"YulFunctionCall","src":"2270:72:2"},"nodeType":"YulExpressionStatement","src":"2270:72:2"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2396:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2409:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2420:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2405:3:2"},"nodeType":"YulFunctionCall","src":"2405:19:2"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"2352:43:2"},"nodeType":"YulFunctionCall","src":"2352:73:2"},"nodeType":"YulExpressionStatement","src":"2352:73:2"},{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"2479:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2492:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2503:3:2","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2488:3:2"},"nodeType":"YulFunctionCall","src":"2488:19:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"2435:43:2"},"nodeType":"YulFunctionCall","src":"2435:73:2"},"nodeType":"YulExpressionStatement","src":"2435:73:2"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1910:9:2","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1922:6:2","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1930:6:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1938:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1946:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1954:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1962:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1973:4:2","type":""}],"src":"1740:775:2"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 192)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_address_to_t_address_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value5, add(headStart, 160))\n\n }\n\n}\n","id":2,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200107038038062001070833981810160405281019062000037919062000152565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e6040518060400160405280601181526020017f4d6f636b4549503731324465636f646572000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012083306000801b604051602001620000ef96959493929190620001f5565b604051602081830303815290604052805190602001206000819055505062000262565b600080fd5b6000819050919050565b6200012c8162000117565b81146200013857600080fd5b50565b6000815190506200014c8162000121565b92915050565b6000602082840312156200016b576200016a62000112565b5b60006200017b848285016200013b565b91505092915050565b6000819050919050565b620001998162000184565b82525050565b620001aa8162000117565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001dd82620001b0565b9050919050565b620001ef81620001d0565b82525050565b600060c0820190506200020c60008301896200018e565b6200021b60208301886200018e565b6200022a60408301876200018e565b6200023960608301866200019f565b620002486080830185620001e4565b6200025760a08301846200018e565b979650505050505050565b610dfe80620002726000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220b813aca3be4d82a116ff8bb776d30aec88874ca56c30845170089417c231849664736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1070 CODESIZE SUB DUP1 PUSH3 0x1070 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x152 JUMP JUMPDEST PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B4549503731324465636F646572000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 ADDRESS PUSH1 0x0 DUP1 SHL PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0xEF SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0x1F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH3 0x262 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x12C DUP2 PUSH3 0x117 JUMP JUMPDEST DUP2 EQ PUSH3 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x14C DUP2 PUSH3 0x121 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x16B JUMPI PUSH3 0x16A PUSH3 0x112 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x17B DUP5 DUP3 DUP6 ADD PUSH3 0x13B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x199 DUP2 PUSH3 0x184 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0x1AA DUP2 PUSH3 0x117 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1DD DUP3 PUSH3 0x1B0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1EF DUP2 PUSH3 0x1D0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH3 0x20C PUSH1 0x0 DUP4 ADD DUP10 PUSH3 0x18E JUMP JUMPDEST PUSH3 0x21B PUSH1 0x20 DUP4 ADD DUP9 PUSH3 0x18E JUMP JUMPDEST PUSH3 0x22A PUSH1 0x40 DUP4 ADD DUP8 PUSH3 0x18E JUMP JUMPDEST PUSH3 0x239 PUSH1 0x60 DUP4 ADD DUP7 PUSH3 0x19F JUMP JUMPDEST PUSH3 0x248 PUSH1 0x80 DUP4 ADD DUP6 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x257 PUSH1 0xA0 DUP4 ADD DUP5 PUSH3 0x18E JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDFE DUP1 PUSH3 0x272 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BC39162 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x83EBB771 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x8F4F876A EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA23CF6E EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x4B1B66E1DAD0EB5853B62DD86EBAC7B66C400129B72DA1FF5FDA43303A4F44DB DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x16F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EC PUSH2 0x166 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FE SWAP3 SWAP2 SWAP1 PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26B JUMPI PUSH1 0x0 PUSH2 0x25E DUP3 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x36B JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP PUSH2 0x366 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E DUP4 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B0 SWAP3 SWAP2 SWAP1 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0xC68 JUMP JUMPDEST SWAP1 POP PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x352 SWAP1 PUSH2 0xCE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x41 DUP6 MLOAD EQ PUSH2 0x386 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH1 0x1B DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x1B DUP2 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0xD3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1B DUP2 PUSH1 0xFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI POP PUSH1 0x1C DUP2 PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x1 DUP7 DUP3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x406 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD83 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x428 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4A0 DUP3 PUSH2 0x457 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4BF JUMPI PUSH2 0x4BE PUSH2 0x468 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D2 PUSH2 0x43E JUMP JUMPDEST SWAP1 POP PUSH2 0x4DE DUP3 DUP3 PUSH2 0x497 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x516 DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x545 PUSH2 0x540 DUP5 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x56C DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x599 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x532 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5D2 DUP2 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5ED PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x5F8 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x618 JUMPI PUSH2 0x617 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x624 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x648 JUMPI PUSH2 0x647 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x654 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x668 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x68A JUMPI PUSH2 0x689 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A7 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x6B4 DUP5 DUP3 DUP6 ADD PUSH2 0x5D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D0 DUP2 PUSH2 0x6BD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x711 PUSH1 0x40 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x731 JUMPI PUSH2 0x730 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x73D DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x751 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x773 JUMPI PUSH2 0x772 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x79D DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x7CA DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EA PUSH2 0x7E5 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x811 DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x82E JUMPI PUSH2 0x82D PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x83E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x872 DUP3 PUSH2 0x847 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x882 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP2 EQ PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x89F DUP2 PUSH2 0x879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x8C5 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8E5 JUMPI PUSH2 0x8E4 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x8F1 DUP5 DUP3 DUP6 ADD PUSH2 0x819 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x905 DUP5 DUP3 DUP6 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x935 DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x957 JUMPI PUSH2 0x956 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x974 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x981 DUP5 DUP3 DUP6 ADD PUSH2 0x8A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x98A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0E DUP3 PUSH2 0x9B4 JUMP JUMPDEST PUSH2 0xA18 DUP2 DUP6 PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH2 0xA28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xA60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA72 DUP2 DUP7 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA86 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xA95 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAB3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAC5 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xAD4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1D PUSH1 0x2 DUP4 PUSH2 0xADC JUMP JUMPDEST SWAP2 POP PUSH2 0xB28 DUP3 PUSH2 0xAE7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB4E PUSH2 0xB49 DUP3 PUSH2 0x6BD JUMP JUMPDEST PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5F DUP3 PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6B DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xB7B DUP3 DUP5 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB8B JUMP JUMPDEST PUSH2 0xBBC DUP2 DUP6 PUSH2 0xB96 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xBD5 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xBF5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC07 DUP2 DUP5 PUSH2 0xBA7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC45 DUP2 PUSH2 0xC10 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC62 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7E JUMPI PUSH2 0xC7D PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8C DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCB PUSH1 0x11 DUP4 PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP PUSH2 0xCD6 DUP3 PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCFA DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD48 DUP3 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0xD01 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xD69 JUMPI PUSH2 0xD68 PUSH2 0xD0E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xD98 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDA5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xD74 JUMP JUMPDEST PUSH2 0xDB2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDBF PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 SGT 0xAC LOG3 0xBE 0x4D DUP3 LOG1 AND SELFDESTRUCT DUP12 0xB7 PUSH23 0xD30AEC88874CA56C30845170089417C231849664736F6C PUSH4 0x4300080D STOP CALLER ","sourceMap":"89:482:1:-:0;;;163:301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;177:69:0;294:26:1;;;;;;;;;;;;;;;;;284:37;;;;;;345:10;;;;;;;;;;;;;;;;;335:21;;;;;;378:7;408:4;443:1;427:19;;225:231;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;215:242;;;;;;202:10;:255;;;;163:301;89:482;;88:117:2;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:77::-;1088:7;1117:5;1106:16;;1051:77;;;:::o;1134:118::-;1221:24;1239:5;1221:24;:::i;:::-;1216:3;1209:37;1134:118;;:::o;1258:::-;1345:24;1363:5;1345:24;:::i;:::-;1340:3;1333:37;1258:118;;:::o;1382:126::-;1419:7;1459:42;1452:5;1448:54;1437:65;;1382:126;;;:::o;1514:96::-;1551:7;1580:24;1598:5;1580:24;:::i;:::-;1569:35;;1514:96;;;:::o;1616:118::-;1703:24;1721:5;1703:24;:::i;:::-;1698:3;1691:37;1616:118;;:::o;1740:775::-;1973:4;2011:3;2000:9;1996:19;1988:27;;2025:71;2093:1;2082:9;2078:17;2069:6;2025:71;:::i;:::-;2106:72;2174:2;2163:9;2159:18;2150:6;2106:72;:::i;:::-;2188;2256:2;2245:9;2241:18;2232:6;2188:72;:::i;:::-;2270;2338:2;2327:9;2323:18;2314:6;2270:72;:::i;:::-;2352:73;2420:3;2409:9;2405:19;2396:6;2352:73;:::i;:::-;2435;2503:3;2492:9;2488:19;2479:6;2435:73;:::i;:::-;1740:775;;;;;;;;;:::o;89:482:1:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GET_EIP712DOMAIN_PACKETHASH_141":{"entryPoint":255,"id":141,"parameterSlots":1,"returnSlots":1},"@GET_PERSON_PACKETHASH_165":{"entryPoint":367,"id":165,"parameterSlots":1,"returnSlots":1},"@getDomainHash_291":{"entryPoint":358,"id":291,"parameterSlots":0,"returnSlots":1},"@recover_115":{"entryPoint":875,"id":115,"parameterSlots":2,"returnSlots":1},"@verifySignedPerson_232":{"entryPoint":464,"id":232,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":2007,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":1330,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2192,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4_fromMemory":{"entryPoint":3155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":1396,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr":{"entryPoint":1496,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Person_$26_memory_ptr":{"entryPoint":1777,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_signedPerson_$21_memory_ptr":{"entryPoint":2213,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":3176,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr":{"entryPoint":1652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Person_$26_memory_ptr":{"entryPoint":1885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr":{"entryPoint":2369,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2442,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":1735,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":2877,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2983,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2563,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2832,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack":{"entryPoint":3262,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2620,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":3444,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":2900,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":1750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3040,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2635,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2718,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":3459,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3297,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1224,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1086,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1958,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":1266,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2955,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2484,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2495,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2780,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint8":{"entryPoint":3389,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2151,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":1725,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3088,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2119,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":1442,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":3329,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory":{"entryPoint":1315,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":2512,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1175,"id":null,"parameterSlots":2,"returnSlots":0},"leftAlign_t_bytes32":{"entryPoint":2867,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3342,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1128,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1256,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":1106,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":1251,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1261,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1101,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1096,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1111,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541":{"entryPoint":2791,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88":{"entryPoint":3221,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2169,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3132,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1452,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:18257:2","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:2","statements":[{"nodeType":"YulAssignment","src":"57:19:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:2","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:2"},"nodeType":"YulFunctionCall","src":"67:9:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:2"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:2","type":""}],"src":"7:75:2"},{"body":{"nodeType":"YulBlock","src":"177:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:2"},"nodeType":"YulFunctionCall","src":"187:12:2"},"nodeType":"YulExpressionStatement","src":"187:12:2"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:2"},{"body":{"nodeType":"YulBlock","src":"300:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:2"},"nodeType":"YulFunctionCall","src":"310:12:2"},"nodeType":"YulExpressionStatement","src":"310:12:2"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:2"},{"body":{"nodeType":"YulBlock","src":"423:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"443:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"433:6:2"},"nodeType":"YulFunctionCall","src":"433:12:2"},"nodeType":"YulExpressionStatement","src":"433:12:2"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulFunctionDefinition","src":"334:117:2"},{"body":{"nodeType":"YulBlock","src":"505:54:2","statements":[{"nodeType":"YulAssignment","src":"515:38:2","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"533:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"540:2:2","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"529:3:2"},"nodeType":"YulFunctionCall","src":"529:14:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"549:2:2","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"545:3:2"},"nodeType":"YulFunctionCall","src":"545:7:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"525:3:2"},"nodeType":"YulFunctionCall","src":"525:28:2"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"515:6:2"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"488:5:2","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"498:6:2","type":""}],"src":"457:102:2"},{"body":{"nodeType":"YulBlock","src":"593:152:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"610:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"613:77:2","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"603:6:2"},"nodeType":"YulFunctionCall","src":"603:88:2"},"nodeType":"YulExpressionStatement","src":"603:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"707:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"710:4:2","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"700:6:2"},"nodeType":"YulFunctionCall","src":"700:15:2"},"nodeType":"YulExpressionStatement","src":"700:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:2"},"nodeType":"YulFunctionCall","src":"724:15:2"},"nodeType":"YulExpressionStatement","src":"724:15:2"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"565:180:2"},{"body":{"nodeType":"YulBlock","src":"794:238:2","statements":[{"nodeType":"YulVariableDeclaration","src":"804:58:2","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"826:6:2"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"856:4:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"834:21:2"},"nodeType":"YulFunctionCall","src":"834:27:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:2"},"nodeType":"YulFunctionCall","src":"822:40:2"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"808:10:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"973:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"975:16:2"},"nodeType":"YulFunctionCall","src":"975:18:2"},"nodeType":"YulExpressionStatement","src":"975:18:2"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"916:10:2"},{"kind":"number","nodeType":"YulLiteral","src":"928:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"913:2:2"},"nodeType":"YulFunctionCall","src":"913:34:2"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"952:10:2"},{"name":"memPtr","nodeType":"YulIdentifier","src":"964:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"949:2:2"},"nodeType":"YulFunctionCall","src":"949:22:2"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"910:2:2"},"nodeType":"YulFunctionCall","src":"910:62:2"},"nodeType":"YulIf","src":"907:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1011:2:2","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1015:10:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1004:6:2"},"nodeType":"YulFunctionCall","src":"1004:22:2"},"nodeType":"YulExpressionStatement","src":"1004:22:2"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"780:6:2","type":""},{"name":"size","nodeType":"YulTypedName","src":"788:4:2","type":""}],"src":"751:281:2"},{"body":{"nodeType":"YulBlock","src":"1079:88:2","statements":[{"nodeType":"YulAssignment","src":"1089:30:2","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1099:18:2"},"nodeType":"YulFunctionCall","src":"1099:20:2"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1089:6:2"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1148:6:2"},{"name":"size","nodeType":"YulIdentifier","src":"1156:4:2"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1128:19:2"},"nodeType":"YulFunctionCall","src":"1128:33:2"},"nodeType":"YulExpressionStatement","src":"1128:33:2"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1063:4:2","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1072:6:2","type":""}],"src":"1038:129:2"},{"body":{"nodeType":"YulBlock","src":"1262:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1279:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1282:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1272:6:2"},"nodeType":"YulFunctionCall","src":"1272:12:2"},"nodeType":"YulExpressionStatement","src":"1272:12:2"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulFunctionDefinition","src":"1173:117:2"},{"body":{"nodeType":"YulBlock","src":"1385:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1402:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1405:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1395:6:2"},"nodeType":"YulFunctionCall","src":"1395:12:2"},"nodeType":"YulExpressionStatement","src":"1395:12:2"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"1296:117:2"},{"body":{"nodeType":"YulBlock","src":"1508:28:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1525:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1528:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1518:6:2"},"nodeType":"YulFunctionCall","src":"1518:12:2"},"nodeType":"YulExpressionStatement","src":"1518:12:2"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulFunctionDefinition","src":"1419:117:2"},{"body":{"nodeType":"YulBlock","src":"1609:241:2","statements":[{"body":{"nodeType":"YulBlock","src":"1714:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1716:16:2"},"nodeType":"YulFunctionCall","src":"1716:18:2"},"nodeType":"YulExpressionStatement","src":"1716:18:2"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1686:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"1694:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1683:2:2"},"nodeType":"YulFunctionCall","src":"1683:30:2"},"nodeType":"YulIf","src":"1680:56:2"},{"nodeType":"YulAssignment","src":"1746:37:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1776:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"1754:21:2"},"nodeType":"YulFunctionCall","src":"1754:29:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1746:4:2"}]},{"nodeType":"YulAssignment","src":"1820:23:2","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"1832:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"1838:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1828:3:2"},"nodeType":"YulFunctionCall","src":"1828:15:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1820:4:2"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"1593:6:2","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"1604:4:2","type":""}],"src":"1542:308:2"},{"body":{"nodeType":"YulBlock","src":"1907:103:2","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1930:3:2"},{"name":"src","nodeType":"YulIdentifier","src":"1935:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"1940:6:2"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1917:12:2"},"nodeType":"YulFunctionCall","src":"1917:30:2"},"nodeType":"YulExpressionStatement","src":"1917:30:2"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1988:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"1993:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1984:3:2"},"nodeType":"YulFunctionCall","src":"1984:16:2"},{"kind":"number","nodeType":"YulLiteral","src":"2002:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1977:6:2"},"nodeType":"YulFunctionCall","src":"1977:27:2"},"nodeType":"YulExpressionStatement","src":"1977:27:2"}]},"name":"copy_calldata_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1889:3:2","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1894:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"1899:6:2","type":""}],"src":"1856:154:2"},{"body":{"nodeType":"YulBlock","src":"2100:328:2","statements":[{"nodeType":"YulAssignment","src":"2110:75:2","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2177:6:2"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nodeType":"YulIdentifier","src":"2135:41:2"},"nodeType":"YulFunctionCall","src":"2135:49:2"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2119:15:2"},"nodeType":"YulFunctionCall","src":"2119:66:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2110:5:2"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2201:5:2"},{"name":"length","nodeType":"YulIdentifier","src":"2208:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2194:6:2"},"nodeType":"YulFunctionCall","src":"2194:21:2"},"nodeType":"YulExpressionStatement","src":"2194:21:2"},{"nodeType":"YulVariableDeclaration","src":"2224:27:2","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2239:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"2246:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2235:3:2"},"nodeType":"YulFunctionCall","src":"2235:16:2"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2228:3:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"2289:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"2291:77:2"},"nodeType":"YulFunctionCall","src":"2291:79:2"},"nodeType":"YulExpressionStatement","src":"2291:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2270:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"2275:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2266:3:2"},"nodeType":"YulFunctionCall","src":"2266:16:2"},{"name":"end","nodeType":"YulIdentifier","src":"2284:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2263:2:2"},"nodeType":"YulFunctionCall","src":"2263:25:2"},"nodeType":"YulIf","src":"2260:112:2"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2405:3:2"},{"name":"dst","nodeType":"YulIdentifier","src":"2410:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"2415:6:2"}],"functionName":{"name":"copy_calldata_to_memory","nodeType":"YulIdentifier","src":"2381:23:2"},"nodeType":"YulFunctionCall","src":"2381:41:2"},"nodeType":"YulExpressionStatement","src":"2381:41:2"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2073:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"2078:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"2086:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2094:5:2","type":""}],"src":"2016:412:2"},{"body":{"nodeType":"YulBlock","src":"2510:278:2","statements":[{"body":{"nodeType":"YulBlock","src":"2559:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"2561:77:2"},"nodeType":"YulFunctionCall","src":"2561:79:2"},"nodeType":"YulExpressionStatement","src":"2561:79:2"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2538:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2546:4:2","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2534:3:2"},"nodeType":"YulFunctionCall","src":"2534:17:2"},{"name":"end","nodeType":"YulIdentifier","src":"2553:3:2"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2530:3:2"},"nodeType":"YulFunctionCall","src":"2530:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2523:6:2"},"nodeType":"YulFunctionCall","src":"2523:35:2"},"nodeType":"YulIf","src":"2520:122:2"},{"nodeType":"YulVariableDeclaration","src":"2651:34:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2678:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2665:12:2"},"nodeType":"YulFunctionCall","src":"2665:20:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2655:6:2","type":""}]},{"nodeType":"YulAssignment","src":"2694:88:2","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2755:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2763:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2751:3:2"},"nodeType":"YulFunctionCall","src":"2751:17:2"},{"name":"length","nodeType":"YulIdentifier","src":"2770:6:2"},{"name":"end","nodeType":"YulIdentifier","src":"2778:3:2"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"2703:47:2"},"nodeType":"YulFunctionCall","src":"2703:79:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2694:5:2"}]}]},"name":"abi_decode_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2488:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"2496:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2504:5:2","type":""}],"src":"2448:340:2"},{"body":{"nodeType":"YulBlock","src":"2839:32:2","statements":[{"nodeType":"YulAssignment","src":"2849:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"2860:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2849:7:2"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2821:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2831:7:2","type":""}],"src":"2794:77:2"},{"body":{"nodeType":"YulBlock","src":"2920:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"2977:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2986:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2989:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2979:6:2"},"nodeType":"YulFunctionCall","src":"2979:12:2"},"nodeType":"YulExpressionStatement","src":"2979:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2943:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2968:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"2950:17:2"},"nodeType":"YulFunctionCall","src":"2950:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2940:2:2"},"nodeType":"YulFunctionCall","src":"2940:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2933:6:2"},"nodeType":"YulFunctionCall","src":"2933:43:2"},"nodeType":"YulIf","src":"2930:63:2"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2913:5:2","type":""}],"src":"2877:122:2"},{"body":{"nodeType":"YulBlock","src":"3057:87:2","statements":[{"nodeType":"YulAssignment","src":"3067:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3089:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3076:12:2"},"nodeType":"YulFunctionCall","src":"3076:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3067:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3132:5:2"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"3105:26:2"},"nodeType":"YulFunctionCall","src":"3105:33:2"},"nodeType":"YulExpressionStatement","src":"3105:33:2"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3035:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"3043:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3051:5:2","type":""}],"src":"3005:139:2"},{"body":{"nodeType":"YulBlock","src":"3259:1001:2","statements":[{"body":{"nodeType":"YulBlock","src":"3303:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"3305:77:2"},"nodeType":"YulFunctionCall","src":"3305:79:2"},"nodeType":"YulExpressionStatement","src":"3305:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"3280:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"3285:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3276:3:2"},"nodeType":"YulFunctionCall","src":"3276:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"3297:4:2","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3272:3:2"},"nodeType":"YulFunctionCall","src":"3272:30:2"},"nodeType":"YulIf","src":"3269:117:2"},{"nodeType":"YulAssignment","src":"3395:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3420:4:2","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3404:15:2"},"nodeType":"YulFunctionCall","src":"3404:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3395:5:2"}]},{"nodeType":"YulBlock","src":"3435:320:2","statements":[{"nodeType":"YulVariableDeclaration","src":"3470:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3501:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3512:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3497:3:2"},"nodeType":"YulFunctionCall","src":"3497:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3484:12:2"},"nodeType":"YulFunctionCall","src":"3484:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3474:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3562:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"3564:77:2"},"nodeType":"YulFunctionCall","src":"3564:79:2"},"nodeType":"YulExpressionStatement","src":"3564:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3534:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3542:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3531:2:2"},"nodeType":"YulFunctionCall","src":"3531:30:2"},"nodeType":"YulIf","src":"3528:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3670:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"3677:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3666:3:2"},"nodeType":"YulFunctionCall","src":"3666:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3719:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"3730:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3715:3:2"},"nodeType":"YulFunctionCall","src":"3715:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"3739:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"3684:30:2"},"nodeType":"YulFunctionCall","src":"3684:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3659:6:2"},"nodeType":"YulFunctionCall","src":"3659:85:2"},"nodeType":"YulExpressionStatement","src":"3659:85:2"}]},{"nodeType":"YulBlock","src":"3765:324:2","statements":[{"nodeType":"YulVariableDeclaration","src":"3803:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3834:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3845:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3830:3:2"},"nodeType":"YulFunctionCall","src":"3830:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3817:12:2"},"nodeType":"YulFunctionCall","src":"3817:32:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3807:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3896:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"3898:77:2"},"nodeType":"YulFunctionCall","src":"3898:79:2"},"nodeType":"YulExpressionStatement","src":"3898:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3868:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3876:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3865:2:2"},"nodeType":"YulFunctionCall","src":"3865:30:2"},"nodeType":"YulIf","src":"3862:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4004:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"4011:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:2"},"nodeType":"YulFunctionCall","src":"4000:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4053:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4064:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4049:3:2"},"nodeType":"YulFunctionCall","src":"4049:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"4073:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"4018:30:2"},"nodeType":"YulFunctionCall","src":"4018:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3993:6:2"},"nodeType":"YulFunctionCall","src":"3993:85:2"},"nodeType":"YulExpressionStatement","src":"3993:85:2"}]},{"nodeType":"YulBlock","src":"4099:154:2","statements":[{"nodeType":"YulVariableDeclaration","src":"4137:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"4151:2:2","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4141:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4178:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"4185:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4174:3:2"},"nodeType":"YulFunctionCall","src":"4174:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4228:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4213:3:2"},"nodeType":"YulFunctionCall","src":"4213:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"4237:3:2"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"4192:20:2"},"nodeType":"YulFunctionCall","src":"4192:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4167:6:2"},"nodeType":"YulFunctionCall","src":"4167:75:2"},"nodeType":"YulExpressionStatement","src":"4167:75:2"}]}]},"name":"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3234:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"3245:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3253:5:2","type":""}],"src":"3177:1083:2"},{"body":{"nodeType":"YulBlock","src":"4359:450:2","statements":[{"body":{"nodeType":"YulBlock","src":"4405:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4407:77:2"},"nodeType":"YulFunctionCall","src":"4407:79:2"},"nodeType":"YulExpressionStatement","src":"4407:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4380:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"4389:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4376:3:2"},"nodeType":"YulFunctionCall","src":"4376:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"4401:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4372:3:2"},"nodeType":"YulFunctionCall","src":"4372:32:2"},"nodeType":"YulIf","src":"4369:119:2"},{"nodeType":"YulBlock","src":"4498:304:2","statements":[{"nodeType":"YulVariableDeclaration","src":"4513:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4544:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4555:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4540:3:2"},"nodeType":"YulFunctionCall","src":"4540:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4527:12:2"},"nodeType":"YulFunctionCall","src":"4527:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4517:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"4605:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"4607:77:2"},"nodeType":"YulFunctionCall","src":"4607:79:2"},"nodeType":"YulExpressionStatement","src":"4607:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4577:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"4585:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4574:2:2"},"nodeType":"YulFunctionCall","src":"4574:30:2"},"nodeType":"YulIf","src":"4571:117:2"},{"nodeType":"YulAssignment","src":"4702:90:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4764:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"4775:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4760:3:2"},"nodeType":"YulFunctionCall","src":"4760:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4784:7:2"}],"functionName":{"name":"abi_decode_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulIdentifier","src":"4712:47:2"},"nodeType":"YulFunctionCall","src":"4712:80:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4702:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4329:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4340:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4352:6:2","type":""}],"src":"4266:543:2"},{"body":{"nodeType":"YulBlock","src":"4860:32:2","statements":[{"nodeType":"YulAssignment","src":"4870:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"4881:5:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4870:7:2"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4842:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4852:7:2","type":""}],"src":"4815:77:2"},{"body":{"nodeType":"YulBlock","src":"4963:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4980:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5003:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"4985:17:2"},"nodeType":"YulFunctionCall","src":"4985:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4973:6:2"},"nodeType":"YulFunctionCall","src":"4973:37:2"},"nodeType":"YulExpressionStatement","src":"4973:37:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4951:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4958:3:2","type":""}],"src":"4898:118:2"},{"body":{"nodeType":"YulBlock","src":"5120:124:2","statements":[{"nodeType":"YulAssignment","src":"5130:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5142:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5153:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5138:3:2"},"nodeType":"YulFunctionCall","src":"5138:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5130:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5210:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5223:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5234:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:2"},"nodeType":"YulFunctionCall","src":"5219:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"5166:43:2"},"nodeType":"YulFunctionCall","src":"5166:71:2"},"nodeType":"YulExpressionStatement","src":"5166:71:2"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5092:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5104:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5115:4:2","type":""}],"src":"5022:222:2"},{"body":{"nodeType":"YulBlock","src":"5348:663:2","statements":[{"body":{"nodeType":"YulBlock","src":"5392:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"5394:77:2"},"nodeType":"YulFunctionCall","src":"5394:79:2"},"nodeType":"YulExpressionStatement","src":"5394:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5369:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"5374:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5365:3:2"},"nodeType":"YulFunctionCall","src":"5365:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"5386:4:2","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5361:3:2"},"nodeType":"YulFunctionCall","src":"5361:30:2"},"nodeType":"YulIf","src":"5358:117:2"},{"nodeType":"YulAssignment","src":"5484:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5509:4:2","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5493:15:2"},"nodeType":"YulFunctionCall","src":"5493:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5484:5:2"}]},{"nodeType":"YulBlock","src":"5524:320:2","statements":[{"nodeType":"YulVariableDeclaration","src":"5559:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5590:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5601:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5586:3:2"},"nodeType":"YulFunctionCall","src":"5586:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5573:12:2"},"nodeType":"YulFunctionCall","src":"5573:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5563:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"5651:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"5653:77:2"},"nodeType":"YulFunctionCall","src":"5653:79:2"},"nodeType":"YulExpressionStatement","src":"5653:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5623:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"5631:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5620:2:2"},"nodeType":"YulFunctionCall","src":"5620:30:2"},"nodeType":"YulIf","src":"5617:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5759:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"5766:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5755:3:2"},"nodeType":"YulFunctionCall","src":"5755:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5808:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"5819:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5804:3:2"},"nodeType":"YulFunctionCall","src":"5804:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"5828:3:2"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nodeType":"YulIdentifier","src":"5773:30:2"},"nodeType":"YulFunctionCall","src":"5773:59:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5748:6:2"},"nodeType":"YulFunctionCall","src":"5748:85:2"},"nodeType":"YulExpressionStatement","src":"5748:85:2"}]},{"nodeType":"YulBlock","src":"5854:150:2","statements":[{"nodeType":"YulVariableDeclaration","src":"5888:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"5902:2:2","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5892:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5929:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"5936:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5925:3:2"},"nodeType":"YulFunctionCall","src":"5925:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5968:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"5979:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5964:3:2"},"nodeType":"YulFunctionCall","src":"5964:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"5988:3:2"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"5943:20:2"},"nodeType":"YulFunctionCall","src":"5943:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5918:6:2"},"nodeType":"YulFunctionCall","src":"5918:75:2"},"nodeType":"YulExpressionStatement","src":"5918:75:2"}]}]},"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5323:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"5334:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5342:5:2","type":""}],"src":"5271:740:2"},{"body":{"nodeType":"YulBlock","src":"6105:445:2","statements":[{"body":{"nodeType":"YulBlock","src":"6151:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"6153:77:2"},"nodeType":"YulFunctionCall","src":"6153:79:2"},"nodeType":"YulExpressionStatement","src":"6153:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6126:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"6135:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6122:3:2"},"nodeType":"YulFunctionCall","src":"6122:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"6147:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6118:3:2"},"nodeType":"YulFunctionCall","src":"6118:32:2"},"nodeType":"YulIf","src":"6115:119:2"},{"nodeType":"YulBlock","src":"6244:299:2","statements":[{"nodeType":"YulVariableDeclaration","src":"6259:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6290:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"6301:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6286:3:2"},"nodeType":"YulFunctionCall","src":"6286:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6273:12:2"},"nodeType":"YulFunctionCall","src":"6273:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6263:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"6351:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"6353:77:2"},"nodeType":"YulFunctionCall","src":"6353:79:2"},"nodeType":"YulExpressionStatement","src":"6353:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6323:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6331:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6320:2:2"},"nodeType":"YulFunctionCall","src":"6320:30:2"},"nodeType":"YulIf","src":"6317:117:2"},{"nodeType":"YulAssignment","src":"6448:85:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6505:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"6516:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6501:3:2"},"nodeType":"YulFunctionCall","src":"6501:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6525:7:2"}],"functionName":{"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulIdentifier","src":"6458:42:2"},"nodeType":"YulFunctionCall","src":"6458:75:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6448:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_Person_$26_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6075:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6086:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6098:6:2","type":""}],"src":"6017:533:2"},{"body":{"nodeType":"YulBlock","src":"6622:241:2","statements":[{"body":{"nodeType":"YulBlock","src":"6727:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"6729:16:2"},"nodeType":"YulFunctionCall","src":"6729:18:2"},"nodeType":"YulExpressionStatement","src":"6729:18:2"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6699:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6707:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6696:2:2"},"nodeType":"YulFunctionCall","src":"6696:30:2"},"nodeType":"YulIf","src":"6693:56:2"},{"nodeType":"YulAssignment","src":"6759:37:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6789:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"6767:21:2"},"nodeType":"YulFunctionCall","src":"6767:29:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6759:4:2"}]},{"nodeType":"YulAssignment","src":"6833:23:2","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"6845:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"6851:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6841:3:2"},"nodeType":"YulFunctionCall","src":"6841:15:2"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"6833:4:2"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"6606:6:2","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"6617:4:2","type":""}],"src":"6556:307:2"},{"body":{"nodeType":"YulBlock","src":"6952:327:2","statements":[{"nodeType":"YulAssignment","src":"6962:74:2","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7028:6:2"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"6987:40:2"},"nodeType":"YulFunctionCall","src":"6987:48:2"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6971:15:2"},"nodeType":"YulFunctionCall","src":"6971:65:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"6962:5:2"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7052:5:2"},{"name":"length","nodeType":"YulIdentifier","src":"7059:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7045:6:2"},"nodeType":"YulFunctionCall","src":"7045:21:2"},"nodeType":"YulExpressionStatement","src":"7045:21:2"},{"nodeType":"YulVariableDeclaration","src":"7075:27:2","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7090:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"7097:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7086:3:2"},"nodeType":"YulFunctionCall","src":"7086:16:2"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"7079:3:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"7140:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"7142:77:2"},"nodeType":"YulFunctionCall","src":"7142:79:2"},"nodeType":"YulExpressionStatement","src":"7142:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7121:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7126:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7117:3:2"},"nodeType":"YulFunctionCall","src":"7117:16:2"},{"name":"end","nodeType":"YulIdentifier","src":"7135:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7114:2:2"},"nodeType":"YulFunctionCall","src":"7114:25:2"},"nodeType":"YulIf","src":"7111:112:2"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7256:3:2"},{"name":"dst","nodeType":"YulIdentifier","src":"7261:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7266:6:2"}],"functionName":{"name":"copy_calldata_to_memory","nodeType":"YulIdentifier","src":"7232:23:2"},"nodeType":"YulFunctionCall","src":"7232:41:2"},"nodeType":"YulExpressionStatement","src":"7232:41:2"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"6925:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"6930:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"6938:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"6946:5:2","type":""}],"src":"6869:410:2"},{"body":{"nodeType":"YulBlock","src":"7359:277:2","statements":[{"body":{"nodeType":"YulBlock","src":"7408:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"7410:77:2"},"nodeType":"YulFunctionCall","src":"7410:79:2"},"nodeType":"YulExpressionStatement","src":"7410:79:2"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7387:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"7395:4:2","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7383:3:2"},"nodeType":"YulFunctionCall","src":"7383:17:2"},{"name":"end","nodeType":"YulIdentifier","src":"7402:3:2"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7379:3:2"},"nodeType":"YulFunctionCall","src":"7379:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7372:6:2"},"nodeType":"YulFunctionCall","src":"7372:35:2"},"nodeType":"YulIf","src":"7369:122:2"},{"nodeType":"YulVariableDeclaration","src":"7500:34:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7527:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7514:12:2"},"nodeType":"YulFunctionCall","src":"7514:20:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7504:6:2","type":""}]},{"nodeType":"YulAssignment","src":"7543:87:2","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7603:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"7611:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7599:3:2"},"nodeType":"YulFunctionCall","src":"7599:17:2"},{"name":"length","nodeType":"YulIdentifier","src":"7618:6:2"},{"name":"end","nodeType":"YulIdentifier","src":"7626:3:2"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"7552:46:2"},"nodeType":"YulFunctionCall","src":"7552:78:2"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"7543:5:2"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7337:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"7345:3:2","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7353:5:2","type":""}],"src":"7298:338:2"},{"body":{"nodeType":"YulBlock","src":"7687:81:2","statements":[{"nodeType":"YulAssignment","src":"7697:65:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7712:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"7719:42:2","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7708:3:2"},"nodeType":"YulFunctionCall","src":"7708:54:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"7697:7:2"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7669:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"7679:7:2","type":""}],"src":"7642:126:2"},{"body":{"nodeType":"YulBlock","src":"7819:51:2","statements":[{"nodeType":"YulAssignment","src":"7829:35:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7858:5:2"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"7840:17:2"},"nodeType":"YulFunctionCall","src":"7840:24:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"7829:7:2"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7801:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"7811:7:2","type":""}],"src":"7774:96:2"},{"body":{"nodeType":"YulBlock","src":"7919:79:2","statements":[{"body":{"nodeType":"YulBlock","src":"7976:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7985:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7988:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7978:6:2"},"nodeType":"YulFunctionCall","src":"7978:12:2"},"nodeType":"YulExpressionStatement","src":"7978:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7942:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7967:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"7949:17:2"},"nodeType":"YulFunctionCall","src":"7949:24:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7939:2:2"},"nodeType":"YulFunctionCall","src":"7939:35:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7932:6:2"},"nodeType":"YulFunctionCall","src":"7932:43:2"},"nodeType":"YulIf","src":"7929:63:2"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7912:5:2","type":""}],"src":"7876:122:2"},{"body":{"nodeType":"YulBlock","src":"8056:87:2","statements":[{"nodeType":"YulAssignment","src":"8066:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8088:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8075:12:2"},"nodeType":"YulFunctionCall","src":"8075:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8066:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8131:5:2"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"8104:26:2"},"nodeType":"YulFunctionCall","src":"8104:33:2"},"nodeType":"YulExpressionStatement","src":"8104:33:2"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"8034:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"8042:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8050:5:2","type":""}],"src":"8004:139:2"},{"body":{"nodeType":"YulBlock","src":"8259:1016:2","statements":[{"body":{"nodeType":"YulBlock","src":"8303:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"8305:77:2"},"nodeType":"YulFunctionCall","src":"8305:79:2"},"nodeType":"YulExpressionStatement","src":"8305:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"8280:3:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"8285:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8276:3:2"},"nodeType":"YulFunctionCall","src":"8276:19:2"},{"kind":"number","nodeType":"YulLiteral","src":"8297:4:2","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8272:3:2"},"nodeType":"YulFunctionCall","src":"8272:30:2"},"nodeType":"YulIf","src":"8269:117:2"},{"nodeType":"YulAssignment","src":"8395:30:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8420:4:2","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8404:15:2"},"nodeType":"YulFunctionCall","src":"8404:21:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8395:5:2"}]},{"nodeType":"YulBlock","src":"8435:324:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8475:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8506:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"8517:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8502:3:2"},"nodeType":"YulFunctionCall","src":"8502:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8489:12:2"},"nodeType":"YulFunctionCall","src":"8489:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8479:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"8567:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"8569:77:2"},"nodeType":"YulFunctionCall","src":"8569:79:2"},"nodeType":"YulExpressionStatement","src":"8569:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8539:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"8547:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8536:2:2"},"nodeType":"YulFunctionCall","src":"8536:30:2"},"nodeType":"YulIf","src":"8533:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8675:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"8682:4:2","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8671:3:2"},"nodeType":"YulFunctionCall","src":"8671:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8723:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"8734:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8719:3:2"},"nodeType":"YulFunctionCall","src":"8719:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"8743:3:2"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"8689:29:2"},"nodeType":"YulFunctionCall","src":"8689:58:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8664:6:2"},"nodeType":"YulFunctionCall","src":"8664:84:2"},"nodeType":"YulExpressionStatement","src":"8664:84:2"}]},{"nodeType":"YulBlock","src":"8769:153:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8806:16:2","value":{"kind":"number","nodeType":"YulLiteral","src":"8820:2:2","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8810:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8847:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"8854:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8843:3:2"},"nodeType":"YulFunctionCall","src":"8843:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8886:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"8897:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8882:3:2"},"nodeType":"YulFunctionCall","src":"8882:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"8906:3:2"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8861:20:2"},"nodeType":"YulFunctionCall","src":"8861:49:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8836:6:2"},"nodeType":"YulFunctionCall","src":"8836:75:2"},"nodeType":"YulExpressionStatement","src":"8836:75:2"}]},{"nodeType":"YulBlock","src":"8932:336:2","statements":[{"nodeType":"YulVariableDeclaration","src":"8970:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9001:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"9012:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8997:3:2"},"nodeType":"YulFunctionCall","src":"8997:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8984:12:2"},"nodeType":"YulFunctionCall","src":"8984:32:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8974:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"9063:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"9065:77:2"},"nodeType":"YulFunctionCall","src":"9065:79:2"},"nodeType":"YulExpressionStatement","src":"9065:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9035:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"9043:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9032:2:2"},"nodeType":"YulFunctionCall","src":"9032:30:2"},"nodeType":"YulIf","src":"9029:117:2"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9171:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"9178:4:2","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9167:3:2"},"nodeType":"YulFunctionCall","src":"9167:16:2"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9232:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"9243:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9228:3:2"},"nodeType":"YulFunctionCall","src":"9228:22:2"},{"name":"end","nodeType":"YulIdentifier","src":"9252:3:2"}],"functionName":{"name":"abi_decode_t_struct$_Person_$26_memory_ptr","nodeType":"YulIdentifier","src":"9185:42:2"},"nodeType":"YulFunctionCall","src":"9185:71:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9160:6:2"},"nodeType":"YulFunctionCall","src":"9160:97:2"},"nodeType":"YulExpressionStatement","src":"9160:97:2"}]}]},"name":"abi_decode_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8234:9:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"8245:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8253:5:2","type":""}],"src":"8176:1099:2"},{"body":{"nodeType":"YulBlock","src":"9375:451:2","statements":[{"body":{"nodeType":"YulBlock","src":"9421:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"9423:77:2"},"nodeType":"YulFunctionCall","src":"9423:79:2"},"nodeType":"YulExpressionStatement","src":"9423:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9396:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"9405:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9392:3:2"},"nodeType":"YulFunctionCall","src":"9392:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"9417:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9388:3:2"},"nodeType":"YulFunctionCall","src":"9388:32:2"},"nodeType":"YulIf","src":"9385:119:2"},{"nodeType":"YulBlock","src":"9514:305:2","statements":[{"nodeType":"YulVariableDeclaration","src":"9529:45:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9560:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"9571:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9556:3:2"},"nodeType":"YulFunctionCall","src":"9556:17:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9543:12:2"},"nodeType":"YulFunctionCall","src":"9543:31:2"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9533:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"9621:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"9623:77:2"},"nodeType":"YulFunctionCall","src":"9623:79:2"},"nodeType":"YulExpressionStatement","src":"9623:79:2"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9593:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"9601:18:2","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9590:2:2"},"nodeType":"YulFunctionCall","src":"9590:30:2"},"nodeType":"YulIf","src":"9587:117:2"},{"nodeType":"YulAssignment","src":"9718:91:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9781:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"9792:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9777:3:2"},"nodeType":"YulFunctionCall","src":"9777:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9801:7:2"}],"functionName":{"name":"abi_decode_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulIdentifier","src":"9728:48:2"},"nodeType":"YulFunctionCall","src":"9728:81:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9718:6:2"}]}]}]},"name":"abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9345:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9356:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9368:6:2","type":""}],"src":"9281:545:2"},{"body":{"nodeType":"YulBlock","src":"9897:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9914:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9937:5:2"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"9919:17:2"},"nodeType":"YulFunctionCall","src":"9919:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9907:6:2"},"nodeType":"YulFunctionCall","src":"9907:37:2"},"nodeType":"YulExpressionStatement","src":"9907:37:2"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9885:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9892:3:2","type":""}],"src":"9832:118:2"},{"body":{"nodeType":"YulBlock","src":"10054:124:2","statements":[{"nodeType":"YulAssignment","src":"10064:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10076:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"10087:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10072:3:2"},"nodeType":"YulFunctionCall","src":"10072:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10064:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10144:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10157:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"10168:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10153:3:2"},"nodeType":"YulFunctionCall","src":"10153:17:2"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"10100:43:2"},"nodeType":"YulFunctionCall","src":"10100:71:2"},"nodeType":"YulExpressionStatement","src":"10100:71:2"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10026:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10038:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10049:4:2","type":""}],"src":"9956:222:2"},{"body":{"nodeType":"YulBlock","src":"10243:40:2","statements":[{"nodeType":"YulAssignment","src":"10254:22:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10270:5:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10264:5:2"},"nodeType":"YulFunctionCall","src":"10264:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10254:6:2"}]}]},"name":"array_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10226:5:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10236:6:2","type":""}],"src":"10184:99:2"},{"body":{"nodeType":"YulBlock","src":"10385:73:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10402:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"10407:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10395:6:2"},"nodeType":"YulFunctionCall","src":"10395:19:2"},"nodeType":"YulExpressionStatement","src":"10395:19:2"},{"nodeType":"YulAssignment","src":"10423:29:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10442:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"10447:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10438:3:2"},"nodeType":"YulFunctionCall","src":"10438:14:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"10423:11:2"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10357:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"10362:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"10373:11:2","type":""}],"src":"10289:169:2"},{"body":{"nodeType":"YulBlock","src":"10513:258:2","statements":[{"nodeType":"YulVariableDeclaration","src":"10523:10:2","value":{"kind":"number","nodeType":"YulLiteral","src":"10532:1:2","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10527:1:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"10592:63:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10617:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"10622:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10613:3:2"},"nodeType":"YulFunctionCall","src":"10613:11:2"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10636:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"10641:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10632:3:2"},"nodeType":"YulFunctionCall","src":"10632:11:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10626:5:2"},"nodeType":"YulFunctionCall","src":"10626:18:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10606:6:2"},"nodeType":"YulFunctionCall","src":"10606:39:2"},"nodeType":"YulExpressionStatement","src":"10606:39:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10553:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"10556:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10550:2:2"},"nodeType":"YulFunctionCall","src":"10550:13:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10564:19:2","statements":[{"nodeType":"YulAssignment","src":"10566:15:2","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10575:1:2"},{"kind":"number","nodeType":"YulLiteral","src":"10578:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10571:3:2"},"nodeType":"YulFunctionCall","src":"10571:10:2"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10566:1:2"}]}]},"pre":{"nodeType":"YulBlock","src":"10546:3:2","statements":[]},"src":"10542:113:2"},{"body":{"nodeType":"YulBlock","src":"10689:76:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10739:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"10744:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10735:3:2"},"nodeType":"YulFunctionCall","src":"10735:16:2"},{"kind":"number","nodeType":"YulLiteral","src":"10753:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10728:6:2"},"nodeType":"YulFunctionCall","src":"10728:27:2"},"nodeType":"YulExpressionStatement","src":"10728:27:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10670:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"10673:6:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10667:2:2"},"nodeType":"YulFunctionCall","src":"10667:13:2"},"nodeType":"YulIf","src":"10664:101:2"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"10495:3:2","type":""},{"name":"dst","nodeType":"YulTypedName","src":"10500:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"10505:6:2","type":""}],"src":"10464:307:2"},{"body":{"nodeType":"YulBlock","src":"10869:272:2","statements":[{"nodeType":"YulVariableDeclaration","src":"10879:53:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10926:5:2"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"10893:32:2"},"nodeType":"YulFunctionCall","src":"10893:39:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10883:6:2","type":""}]},{"nodeType":"YulAssignment","src":"10941:78:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11007:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"11012:6:2"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10948:58:2"},"nodeType":"YulFunctionCall","src":"10948:71:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10941:3:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11054:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"11061:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11050:3:2"},"nodeType":"YulFunctionCall","src":"11050:16:2"},{"name":"pos","nodeType":"YulIdentifier","src":"11068:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"11073:6:2"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11028:21:2"},"nodeType":"YulFunctionCall","src":"11028:52:2"},"nodeType":"YulExpressionStatement","src":"11028:52:2"},{"nodeType":"YulAssignment","src":"11089:46:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11100:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11127:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"11105:21:2"},"nodeType":"YulFunctionCall","src":"11105:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11096:3:2"},"nodeType":"YulFunctionCall","src":"11096:39:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11089:3:2"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10850:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10857:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10865:3:2","type":""}],"src":"10777:364:2"},{"body":{"nodeType":"YulBlock","src":"11212:53:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11229:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11252:5:2"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"11234:17:2"},"nodeType":"YulFunctionCall","src":"11234:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11222:6:2"},"nodeType":"YulFunctionCall","src":"11222:37:2"},"nodeType":"YulExpressionStatement","src":"11222:37:2"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11200:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11207:3:2","type":""}],"src":"11147:118:2"},{"body":{"nodeType":"YulBlock","src":"11493:513:2","statements":[{"nodeType":"YulAssignment","src":"11503:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11515:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11526:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11511:3:2"},"nodeType":"YulFunctionCall","src":"11511:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11503:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11584:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11597:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11608:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11593:3:2"},"nodeType":"YulFunctionCall","src":"11593:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"11540:43:2"},"nodeType":"YulFunctionCall","src":"11540:71:2"},"nodeType":"YulExpressionStatement","src":"11540:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11632:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11643:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11628:3:2"},"nodeType":"YulFunctionCall","src":"11628:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11652:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"11658:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11648:3:2"},"nodeType":"YulFunctionCall","src":"11648:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11621:6:2"},"nodeType":"YulFunctionCall","src":"11621:48:2"},"nodeType":"YulExpressionStatement","src":"11621:48:2"},{"nodeType":"YulAssignment","src":"11678:86:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11750:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"11759:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11686:63:2"},"nodeType":"YulFunctionCall","src":"11686:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11678:4:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11785:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11796:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11781:3:2"},"nodeType":"YulFunctionCall","src":"11781:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11805:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"11811:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11801:3:2"},"nodeType":"YulFunctionCall","src":"11801:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11774:6:2"},"nodeType":"YulFunctionCall","src":"11774:48:2"},"nodeType":"YulExpressionStatement","src":"11774:48:2"},{"nodeType":"YulAssignment","src":"11831:86:2","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11903:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"11912:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"11839:63:2"},"nodeType":"YulFunctionCall","src":"11839:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11831:4:2"}]},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11971:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11984:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"11995:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11980:3:2"},"nodeType":"YulFunctionCall","src":"11980:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"11927:43:2"},"nodeType":"YulFunctionCall","src":"11927:72:2"},"nodeType":"YulExpressionStatement","src":"11927:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11441:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11453:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11461:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11469:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11477:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11488:4:2","type":""}],"src":"11271:735:2"},{"body":{"nodeType":"YulBlock","src":"12186:359:2","statements":[{"nodeType":"YulAssignment","src":"12196:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12208:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12219:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12204:3:2"},"nodeType":"YulFunctionCall","src":"12204:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12196:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12276:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12289:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12300:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12285:3:2"},"nodeType":"YulFunctionCall","src":"12285:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"12232:43:2"},"nodeType":"YulFunctionCall","src":"12232:71:2"},"nodeType":"YulExpressionStatement","src":"12232:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12324:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12335:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12320:3:2"},"nodeType":"YulFunctionCall","src":"12320:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12344:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"12350:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12340:3:2"},"nodeType":"YulFunctionCall","src":"12340:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12313:6:2"},"nodeType":"YulFunctionCall","src":"12313:48:2"},"nodeType":"YulExpressionStatement","src":"12313:48:2"},{"nodeType":"YulAssignment","src":"12370:86:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12442:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"12451:4:2"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"12378:63:2"},"nodeType":"YulFunctionCall","src":"12378:78:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12370:4:2"}]},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12510:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12523:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"12534:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12519:3:2"},"nodeType":"YulFunctionCall","src":"12519:18:2"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"12466:43:2"},"nodeType":"YulFunctionCall","src":"12466:72:2"},"nodeType":"YulExpressionStatement","src":"12466:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12142:9:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12154:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12162:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12170:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12181:4:2","type":""}],"src":"12012:533:2"},{"body":{"nodeType":"YulBlock","src":"12665:34:2","statements":[{"nodeType":"YulAssignment","src":"12675:18:2","value":{"name":"pos","nodeType":"YulIdentifier","src":"12690:3:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"12675:11:2"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12637:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"12642:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"12653:11:2","type":""}],"src":"12551:148:2"},{"body":{"nodeType":"YulBlock","src":"12811:108:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12833:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"12841:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12829:3:2"},"nodeType":"YulFunctionCall","src":"12829:14:2"},{"kind":"number","nodeType":"YulLiteral","src":"12845:66:2","type":"","value":"0x1901000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12822:6:2"},"nodeType":"YulFunctionCall","src":"12822:90:2"},"nodeType":"YulExpressionStatement","src":"12822:90:2"}]},"name":"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"12803:6:2","type":""}],"src":"12705:214:2"},{"body":{"nodeType":"YulBlock","src":"13089:236:2","statements":[{"nodeType":"YulAssignment","src":"13099:91:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13183:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"13188:1:2","type":"","value":"2"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"13106:76:2"},"nodeType":"YulFunctionCall","src":"13106:84:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13099:3:2"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13288:3:2"}],"functionName":{"name":"store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","nodeType":"YulIdentifier","src":"13199:88:2"},"nodeType":"YulFunctionCall","src":"13199:93:2"},"nodeType":"YulExpressionStatement","src":"13199:93:2"},{"nodeType":"YulAssignment","src":"13301:18:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13312:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"13317:1:2","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13308:3:2"},"nodeType":"YulFunctionCall","src":"13308:11:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13301:3:2"}]}]},"name":"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13077:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13085:3:2","type":""}],"src":"12925:400:2"},{"body":{"nodeType":"YulBlock","src":"13378:32:2","statements":[{"nodeType":"YulAssignment","src":"13388:16:2","value":{"name":"value","nodeType":"YulIdentifier","src":"13399:5:2"},"variableNames":[{"name":"aligned","nodeType":"YulIdentifier","src":"13388:7:2"}]}]},"name":"leftAlign_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13360:5:2","type":""}],"returnVariables":[{"name":"aligned","nodeType":"YulTypedName","src":"13370:7:2","type":""}],"src":"13331:79:2"},{"body":{"nodeType":"YulBlock","src":"13499:74:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13516:3:2"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13559:5:2"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"13541:17:2"},"nodeType":"YulFunctionCall","src":"13541:24:2"}],"functionName":{"name":"leftAlign_t_bytes32","nodeType":"YulIdentifier","src":"13521:19:2"},"nodeType":"YulFunctionCall","src":"13521:45:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13509:6:2"},"nodeType":"YulFunctionCall","src":"13509:58:2"},"nodeType":"YulExpressionStatement","src":"13509:58:2"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13487:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"13494:3:2","type":""}],"src":"13416:157:2"},{"body":{"nodeType":"YulBlock","src":"13824:418:2","statements":[{"nodeType":"YulAssignment","src":"13835:155:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13986:3:2"}],"functionName":{"name":"abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"13842:142:2"},"nodeType":"YulFunctionCall","src":"13842:148:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13835:3:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14062:6:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14071:3:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"14000:61:2"},"nodeType":"YulFunctionCall","src":"14000:75:2"},"nodeType":"YulExpressionStatement","src":"14000:75:2"},{"nodeType":"YulAssignment","src":"14084:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14095:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14100:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14091:3:2"},"nodeType":"YulFunctionCall","src":"14091:12:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14084:3:2"}]},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14175:6:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14184:3:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"14113:61:2"},"nodeType":"YulFunctionCall","src":"14113:75:2"},"nodeType":"YulExpressionStatement","src":"14113:75:2"},{"nodeType":"YulAssignment","src":"14197:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14208:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14213:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14204:3:2"},"nodeType":"YulFunctionCall","src":"14204:12:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14197:3:2"}]},{"nodeType":"YulAssignment","src":"14226:10:2","value":{"name":"pos","nodeType":"YulIdentifier","src":"14233:3:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14226:3:2"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13795:3:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13801:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13809:6:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13820:3:2","type":""}],"src":"13579:663:2"},{"body":{"nodeType":"YulBlock","src":"14306:40:2","statements":[{"nodeType":"YulAssignment","src":"14317:22:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14333:5:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14327:5:2"},"nodeType":"YulFunctionCall","src":"14327:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14317:6:2"}]}]},"name":"array_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14289:5:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14299:6:2","type":""}],"src":"14248:98:2"},{"body":{"nodeType":"YulBlock","src":"14447:73:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14464:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14469:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14457:6:2"},"nodeType":"YulFunctionCall","src":"14457:19:2"},"nodeType":"YulExpressionStatement","src":"14457:19:2"},{"nodeType":"YulAssignment","src":"14485:29:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14504:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"14509:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14500:3:2"},"nodeType":"YulFunctionCall","src":"14500:14:2"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"14485:11:2"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14419:3:2","type":""},{"name":"length","nodeType":"YulTypedName","src":"14424:6:2","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"14435:11:2","type":""}],"src":"14352:168:2"},{"body":{"nodeType":"YulBlock","src":"14616:270:2","statements":[{"nodeType":"YulVariableDeclaration","src":"14626:52:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14672:5:2"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"14640:31:2"},"nodeType":"YulFunctionCall","src":"14640:38:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14630:6:2","type":""}]},{"nodeType":"YulAssignment","src":"14687:77:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14752:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14757:6:2"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14694:57:2"},"nodeType":"YulFunctionCall","src":"14694:70:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14687:3:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14799:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"14806:4:2","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14795:3:2"},"nodeType":"YulFunctionCall","src":"14795:16:2"},{"name":"pos","nodeType":"YulIdentifier","src":"14813:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"14818:6:2"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"14773:21:2"},"nodeType":"YulFunctionCall","src":"14773:52:2"},"nodeType":"YulExpressionStatement","src":"14773:52:2"},{"nodeType":"YulAssignment","src":"14834:46:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14845:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14872:6:2"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"14850:21:2"},"nodeType":"YulFunctionCall","src":"14850:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14841:3:2"},"nodeType":"YulFunctionCall","src":"14841:39:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14834:3:2"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14597:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14604:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14612:3:2","type":""}],"src":"14526:360:2"},{"body":{"nodeType":"YulBlock","src":"15036:275:2","statements":[{"nodeType":"YulAssignment","src":"15046:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15054:3:2"},"nodeType":"YulFunctionCall","src":"15054:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15046:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15126:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15139:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15150:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15135:3:2"},"nodeType":"YulFunctionCall","src":"15135:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"15082:43:2"},"nodeType":"YulFunctionCall","src":"15082:71:2"},"nodeType":"YulExpressionStatement","src":"15082:71:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15174:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"15185:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15170:3:2"},"nodeType":"YulFunctionCall","src":"15170:18:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15194:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"15200:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15190:3:2"},"nodeType":"YulFunctionCall","src":"15190:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15163:6:2"},"nodeType":"YulFunctionCall","src":"15163:48:2"},"nodeType":"YulExpressionStatement","src":"15163:48:2"},{"nodeType":"YulAssignment","src":"15220:84:2","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15290:6:2"},{"name":"tail","nodeType":"YulIdentifier","src":"15299:4:2"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15228:61:2"},"nodeType":"YulFunctionCall","src":"15228:76:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15220:4:2"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15000:9:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15012:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15020:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15031:4:2","type":""}],"src":"14892:419:2"},{"body":{"nodeType":"YulBlock","src":"15361:105:2","statements":[{"nodeType":"YulAssignment","src":"15371:89:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15386:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"15393:66:2","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15382:3:2"},"nodeType":"YulFunctionCall","src":"15382:78:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"15371:7:2"}]}]},"name":"cleanup_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15343:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"15353:7:2","type":""}],"src":"15317:149:2"},{"body":{"nodeType":"YulBlock","src":"15514:78:2","statements":[{"body":{"nodeType":"YulBlock","src":"15570:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15579:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15582:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15572:6:2"},"nodeType":"YulFunctionCall","src":"15572:12:2"},"nodeType":"YulExpressionStatement","src":"15572:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15537:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15561:5:2"}],"functionName":{"name":"cleanup_t_bytes4","nodeType":"YulIdentifier","src":"15544:16:2"},"nodeType":"YulFunctionCall","src":"15544:23:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15534:2:2"},"nodeType":"YulFunctionCall","src":"15534:34:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15527:6:2"},"nodeType":"YulFunctionCall","src":"15527:42:2"},"nodeType":"YulIf","src":"15524:62:2"}]},"name":"validator_revert_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15507:5:2","type":""}],"src":"15472:120:2"},{"body":{"nodeType":"YulBlock","src":"15660:79:2","statements":[{"nodeType":"YulAssignment","src":"15670:22:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"15685:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15679:5:2"},"nodeType":"YulFunctionCall","src":"15679:13:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"15670:5:2"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15727:5:2"}],"functionName":{"name":"validator_revert_t_bytes4","nodeType":"YulIdentifier","src":"15701:25:2"},"nodeType":"YulFunctionCall","src":"15701:32:2"},"nodeType":"YulExpressionStatement","src":"15701:32:2"}]},"name":"abi_decode_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"15638:6:2","type":""},{"name":"end","nodeType":"YulTypedName","src":"15646:3:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"15654:5:2","type":""}],"src":"15598:141:2"},{"body":{"nodeType":"YulBlock","src":"15821:273:2","statements":[{"body":{"nodeType":"YulBlock","src":"15867:83:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"15869:77:2"},"nodeType":"YulFunctionCall","src":"15869:79:2"},"nodeType":"YulExpressionStatement","src":"15869:79:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15842:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"15851:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15838:3:2"},"nodeType":"YulFunctionCall","src":"15838:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"15863:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15834:3:2"},"nodeType":"YulFunctionCall","src":"15834:32:2"},"nodeType":"YulIf","src":"15831:119:2"},{"nodeType":"YulBlock","src":"15960:127:2","statements":[{"nodeType":"YulVariableDeclaration","src":"15975:15:2","value":{"kind":"number","nodeType":"YulLiteral","src":"15989:1:2","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"15979:6:2","type":""}]},{"nodeType":"YulAssignment","src":"16004:73:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16049:9:2"},{"name":"offset","nodeType":"YulIdentifier","src":"16060:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16045:3:2"},"nodeType":"YulFunctionCall","src":"16045:22:2"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16069:7:2"}],"functionName":{"name":"abi_decode_t_bytes4_fromMemory","nodeType":"YulIdentifier","src":"16014:30:2"},"nodeType":"YulFunctionCall","src":"16014:63:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16004:6:2"}]}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15791:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15802:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15814:6:2","type":""}],"src":"15745:349:2"},{"body":{"nodeType":"YulBlock","src":"16206:61:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"16228:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"16236:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16224:3:2"},"nodeType":"YulFunctionCall","src":"16224:14:2"},{"hexValue":"494e56414c49445f5349474e4154555245","kind":"string","nodeType":"YulLiteral","src":"16240:19:2","type":"","value":"INVALID_SIGNATURE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16217:6:2"},"nodeType":"YulFunctionCall","src":"16217:43:2"},"nodeType":"YulExpressionStatement","src":"16217:43:2"}]},"name":"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"16198:6:2","type":""}],"src":"16100:167:2"},{"body":{"nodeType":"YulBlock","src":"16419:220:2","statements":[{"nodeType":"YulAssignment","src":"16429:74:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16495:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"16500:2:2","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16436:58:2"},"nodeType":"YulFunctionCall","src":"16436:67:2"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16429:3:2"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16601:3:2"}],"functionName":{"name":"store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88","nodeType":"YulIdentifier","src":"16512:88:2"},"nodeType":"YulFunctionCall","src":"16512:93:2"},"nodeType":"YulExpressionStatement","src":"16512:93:2"},{"nodeType":"YulAssignment","src":"16614:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16625:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"16630:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16621:3:2"},"nodeType":"YulFunctionCall","src":"16621:12:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16614:3:2"}]}]},"name":"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16407:3:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16415:3:2","type":""}],"src":"16273:366:2"},{"body":{"nodeType":"YulBlock","src":"16816:248:2","statements":[{"nodeType":"YulAssignment","src":"16826:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16838:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"16849:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16834:3:2"},"nodeType":"YulFunctionCall","src":"16834:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16826:4:2"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16873:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"16884:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16869:3:2"},"nodeType":"YulFunctionCall","src":"16869:17:2"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16892:4:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"16898:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16888:3:2"},"nodeType":"YulFunctionCall","src":"16888:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16862:6:2"},"nodeType":"YulFunctionCall","src":"16862:47:2"},"nodeType":"YulExpressionStatement","src":"16862:47:2"},{"nodeType":"YulAssignment","src":"16918:139:2","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"17052:4:2"}],"functionName":{"name":"abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16926:124:2"},"nodeType":"YulFunctionCall","src":"16926:131:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16918:4:2"}]}]},"name":"abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16796:9:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16811:4:2","type":""}],"src":"16645:419:2"},{"body":{"nodeType":"YulBlock","src":"17113:43:2","statements":[{"nodeType":"YulAssignment","src":"17123:27:2","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17138:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"17145:4:2","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17134:3:2"},"nodeType":"YulFunctionCall","src":"17134:16:2"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"17123:7:2"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17095:5:2","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"17105:7:2","type":""}],"src":"17070:86:2"},{"body":{"nodeType":"YulBlock","src":"17190:152:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17207:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17210:77:2","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17200:6:2"},"nodeType":"YulFunctionCall","src":"17200:88:2"},"nodeType":"YulExpressionStatement","src":"17200:88:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17304:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17307:4:2","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17297:6:2"},"nodeType":"YulFunctionCall","src":"17297:15:2"},"nodeType":"YulExpressionStatement","src":"17297:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17328:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17331:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17321:6:2"},"nodeType":"YulFunctionCall","src":"17321:15:2"},"nodeType":"YulExpressionStatement","src":"17321:15:2"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"17162:180:2"},{"body":{"nodeType":"YulBlock","src":"17390:195:2","statements":[{"nodeType":"YulAssignment","src":"17400:23:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17421:1:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17405:15:2"},"nodeType":"YulFunctionCall","src":"17405:18:2"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"17400:1:2"}]},{"nodeType":"YulAssignment","src":"17432:23:2","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17453:1:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17437:15:2"},"nodeType":"YulFunctionCall","src":"17437:18:2"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"17432:1:2"}]},{"body":{"nodeType":"YulBlock","src":"17531:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17533:16:2"},"nodeType":"YulFunctionCall","src":"17533:18:2"},"nodeType":"YulExpressionStatement","src":"17533:18:2"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17514:1:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17521:4:2","type":"","value":"0xff"},{"name":"y","nodeType":"YulIdentifier","src":"17527:1:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17517:3:2"},"nodeType":"YulFunctionCall","src":"17517:12:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17511:2:2"},"nodeType":"YulFunctionCall","src":"17511:19:2"},"nodeType":"YulIf","src":"17508:45:2"},{"nodeType":"YulAssignment","src":"17563:16:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17574:1:2"},{"name":"y","nodeType":"YulIdentifier","src":"17577:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17570:3:2"},"nodeType":"YulFunctionCall","src":"17570:9:2"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"17563:3:2"}]}]},"name":"checked_add_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17377:1:2","type":""},{"name":"y","nodeType":"YulTypedName","src":"17380:1:2","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"17386:3:2","type":""}],"src":"17348:237:2"},{"body":{"nodeType":"YulBlock","src":"17652:51:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17669:3:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17690:5:2"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"17674:15:2"},"nodeType":"YulFunctionCall","src":"17674:22:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17662:6:2"},"nodeType":"YulFunctionCall","src":"17662:35:2"},"nodeType":"YulExpressionStatement","src":"17662:35:2"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17640:5:2","type":""},{"name":"pos","nodeType":"YulTypedName","src":"17647:3:2","type":""}],"src":"17591:112:2"},{"body":{"nodeType":"YulBlock","src":"17887:367:2","statements":[{"nodeType":"YulAssignment","src":"17897:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17909:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"17920:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17905:3:2"},"nodeType":"YulFunctionCall","src":"17905:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17897:4:2"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17978:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17991:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18002:1:2","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17987:3:2"},"nodeType":"YulFunctionCall","src":"17987:17:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"17934:43:2"},"nodeType":"YulFunctionCall","src":"17934:71:2"},"nodeType":"YulExpressionStatement","src":"17934:71:2"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18055:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18068:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18079:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18064:3:2"},"nodeType":"YulFunctionCall","src":"18064:18:2"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulIdentifier","src":"18015:39:2"},"nodeType":"YulFunctionCall","src":"18015:68:2"},"nodeType":"YulExpressionStatement","src":"18015:68:2"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18137:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18150:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18161:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18146:3:2"},"nodeType":"YulFunctionCall","src":"18146:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"18093:43:2"},"nodeType":"YulFunctionCall","src":"18093:72:2"},"nodeType":"YulExpressionStatement","src":"18093:72:2"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18219:6:2"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18232:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"18243:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18228:3:2"},"nodeType":"YulFunctionCall","src":"18228:18:2"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"18175:43:2"},"nodeType":"YulFunctionCall","src":"18175:72:2"},"nodeType":"YulExpressionStatement","src":"18175:72:2"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17835:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17847:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17855:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17863:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17871:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17882:4:2","type":""}],"src":"17709:545:2"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct EIP712Domain\n function abi_decode_t_struct$_EIP712Domain_$8_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // name\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // version\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // chainId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_EIP712Domain_$8_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_EIP712Domain_$8_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n // struct Person\n function abi_decode_t_struct$_Person_$26_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // name\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // age\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Person_$26_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Person_$26_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // struct signedPerson\n function abi_decode_t_struct$_signedPerson_$21_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // signature\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x00), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // signer\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // message\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_struct$_Person_$26_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_signedPerson_$21_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_signedPerson_$21_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_string_memory_ptr_t_uint256__to_t_bytes32_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541(memPtr) {\n\n mstore(add(memPtr, 0), 0x1901000000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n store_literal_in_memory_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541(pos)\n end := add(pos, 2)\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88(memPtr) {\n\n mstore(add(memPtr, 0), \"INVALID_SIGNATURE\")\n\n }\n\n function abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5e2e9eaa2d734966dea0900deacd15b20129fbce05255d633a3ce5ebca181b88_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint8(x, y) -> sum {\n x := cleanup_t_uint8(x)\n y := cleanup_t_uint8(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n","id":2,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220b813aca3be4d82a116ff8bb776d30aec88874ca56c30845170089417c231849664736f6c634300080d0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BC39162 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x83EBB771 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x8F4F876A EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0xEA23CF6E EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x674 JUMP JUMPDEST PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x4B1B66E1DAD0EB5853B62DD86EBAC7B66C400129B72DA1FF5FDA43303A4F44DB DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0 DUP4 PUSH1 0x40 ADD MLOAD PUSH2 0x16F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EC PUSH2 0x166 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FE SWAP3 SWAP2 SWAP1 PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26B JUMPI PUSH1 0x0 PUSH2 0x25E DUP3 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x36B JUMP JUMPDEST SWAP1 POP DUP1 SWAP4 POP POP POP POP PUSH2 0x366 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E DUP4 DUP8 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B0 SWAP3 SWAP2 SWAP1 PUSH2 0xBE0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0xC68 JUMP JUMPDEST SWAP1 POP PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x352 SWAP1 PUSH2 0xCE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x41 DUP6 MLOAD EQ PUSH2 0x386 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH1 0x1B DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x1B DUP2 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0xD3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1B DUP2 PUSH1 0xFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI POP PUSH1 0x1C DUP2 PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3E3 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x438 JUMP JUMPDEST PUSH1 0x1 DUP7 DUP3 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x406 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD83 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x428 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4A0 DUP3 PUSH2 0x457 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4BF JUMPI PUSH2 0x4BE PUSH2 0x468 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D2 PUSH2 0x43E JUMP JUMPDEST SWAP1 POP PUSH2 0x4DE DUP3 DUP3 PUSH2 0x497 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x516 DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x545 PUSH2 0x540 DUP5 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x56C DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x589 JUMPI PUSH2 0x588 PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x599 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x532 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP2 EQ PUSH2 0x5C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5D2 DUP2 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5ED PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x5F8 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x618 JUMPI PUSH2 0x617 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x624 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x648 JUMPI PUSH2 0x647 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x654 DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x668 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x68A JUMPI PUSH2 0x689 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A7 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x6B4 DUP5 DUP3 DUP6 ADD PUSH2 0x5D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D0 DUP2 PUSH2 0x6BD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6EB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x707 JUMPI PUSH2 0x706 PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x711 PUSH1 0x40 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x731 JUMPI PUSH2 0x730 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x73D DUP5 DUP3 DUP6 ADD PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x751 DUP5 DUP3 DUP6 ADD PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x773 JUMPI PUSH2 0x772 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x79D DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7C1 JUMPI PUSH2 0x7C0 PUSH2 0x468 JUMP JUMPDEST JUMPDEST PUSH2 0x7CA DUP3 PUSH2 0x457 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EA PUSH2 0x7E5 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0x4ED JUMP JUMPDEST JUMPDEST PUSH2 0x811 DUP5 DUP3 DUP6 PUSH2 0x523 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x82E JUMPI PUSH2 0x82D PUSH2 0x4E8 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x83E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x872 DUP3 PUSH2 0x847 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x882 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP2 EQ PUSH2 0x88D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x89F DUP2 PUSH2 0x879 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0x452 JUMP JUMPDEST JUMPDEST PUSH2 0x8C5 PUSH1 0x60 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8E5 JUMPI PUSH2 0x8E4 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x8F1 DUP5 DUP3 DUP6 ADD PUSH2 0x819 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x905 DUP5 DUP3 DUP6 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x4E3 JUMP JUMPDEST JUMPDEST PUSH2 0x935 DUP5 DUP3 DUP6 ADD PUSH2 0x6F1 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x957 JUMPI PUSH2 0x956 PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x974 PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH2 0x981 DUP5 DUP3 DUP6 ADD PUSH2 0x8A5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x867 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x98A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9EE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9D3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0E DUP3 PUSH2 0x9B4 JUMP JUMPDEST PUSH2 0xA18 DUP2 DUP6 PUSH2 0x9BF JUMP JUMPDEST SWAP4 POP PUSH2 0xA28 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH2 0x5A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xA60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA72 DUP2 DUP7 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA86 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xA95 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xAB3 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAC5 DUP2 DUP6 PUSH2 0xA03 JUMP JUMPDEST SWAP1 POP PUSH2 0xAD4 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xA3C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1D PUSH1 0x2 DUP4 PUSH2 0xADC JUMP JUMPDEST SWAP2 POP PUSH2 0xB28 DUP3 PUSH2 0xAE7 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB4E PUSH2 0xB49 DUP3 PUSH2 0x6BD JUMP JUMPDEST PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5F DUP3 PUSH2 0xB10 JUMP JUMPDEST SWAP2 POP PUSH2 0xB6B DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0xB7B DUP3 DUP5 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB8B JUMP JUMPDEST PUSH2 0xBBC DUP2 DUP6 PUSH2 0xB96 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9D0 JUMP JUMPDEST PUSH2 0xBD5 DUP2 PUSH2 0x457 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xBF5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC07 DUP2 DUP5 PUSH2 0xBA7 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC45 DUP2 PUSH2 0xC10 JUMP JUMPDEST DUP2 EQ PUSH2 0xC50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC62 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7E JUMPI PUSH2 0xC7D PUSH2 0x448 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC8C DUP5 DUP3 DUP6 ADD PUSH2 0xC53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x494E56414C49445F5349474E4154555245000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCCB PUSH1 0x11 DUP4 PUSH2 0x9BF JUMP JUMPDEST SWAP2 POP PUSH2 0xCD6 DUP3 PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCFA DUP2 PUSH2 0xCBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD48 DUP3 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP PUSH2 0xD53 DUP4 PUSH2 0xD01 JUMP JUMPDEST SWAP3 POP DUP3 PUSH1 0xFF SUB DUP3 GT ISZERO PUSH2 0xD69 JUMPI PUSH2 0xD68 PUSH2 0xD0E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD7D DUP2 PUSH2 0xD01 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xD98 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDA5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xD74 JUMP JUMPDEST PUSH2 0xDB2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x6C7 JUMP JUMPDEST PUSH2 0xDBF PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6C7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 SGT 0xAC LOG3 0xBE 0x4D DUP3 LOG1 AND SELFDESTRUCT DUP12 0xB7 PUSH23 0xD30AEC88874CA56C30845170089417C231849664736F6C PUSH4 0x4300080D STOP CALLER ","sourceMap":"89:482:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:279:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;470:99:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2538:235:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:768;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2255:279;2342:7;2362:20;177:69;2432:6;:11;;;2451:6;:14;;;2473:6;:14;;;2385:108;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2362:131;;2521:7;2511:18;;;;;;2504:25;;;2255:279;;;:::o;470:99:1:-;526:7;552:10;;545:17;;470:99;:::o;2538:235:0:-;2613:7;2633:20;415:44;2697:6;:11;;;2716:6;:10;;;2656:76;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2633:99;;2760:7;2750:18;;;;;;2743:25;;;2538:235;;;:::o;2779:768::-;2856:7;2873:18;2894:37;2916:6;:14;;;2894:21;:37::i;:::-;2873:58;;2939:14;3025:15;:13;:15::i;:::-;3052:10;2975:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2956:124;;;;;;2939:141;;3110:42;3093:59;;:6;:13;;;:59;;;3089:452;;3164:23;3190:63;3209:6;3227;:16;;;3190:7;:63::i;:::-;3164:89;;3270:15;3263:22;;;;;;;3089:452;3353:13;3385:6;:13;;;3369:47;;;3417:6;3425;:16;;;3369:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3353:89;;3470:10;3460:20;;:6;:20;;;;3452:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3519:6;:13;;;3512:20;;;;;2779:768;;;;:::o;1549:702::-;1621:7;1636:9;1651;1666:7;1732:2;1718:3;:10;:16;1714:56;;1760:1;1744:19;;;;;;;1714:56;1865:2;1860:3;1856:12;1850:19;1845:24;;1896:2;1891:3;1887:12;1881:19;1876:24;;1935:2;1930:3;1926:12;1920:19;1917:1;1912:28;1907:33;;2046:2;2042:1;:6;;;2038:34;;;2063:2;2058:7;;;;;:::i;:::-;;;2038:34;2146:2;2141:1;:7;;;;:18;;;;;2157:2;2152:1;:7;;;;2141:18;2137:110;;;2185:1;2169:19;;;;;;;2137:110;2216:24;2226:4;2232:1;2235;2238;2216:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2209:31;;;;;1549:702;;;;;:::o;7:75:2:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:117::-;1282:1;1279;1272:12;1296:117;1405:1;1402;1395:12;1419:117;1528:1;1525;1518:12;1542:308;1604:4;1694:18;1686:6;1683:30;1680:56;;;1716:18;;:::i;:::-;1680:56;1754:29;1776:6;1754:29;:::i;:::-;1746:37;;1838:4;1832;1828:15;1820:23;;1542:308;;;:::o;1856:154::-;1940:6;1935:3;1930;1917:30;2002:1;1993:6;1988:3;1984:16;1977:27;1856:154;;;:::o;2016:412::-;2094:5;2119:66;2135:49;2177:6;2135:49;:::i;:::-;2119:66;:::i;:::-;2110:75;;2208:6;2201:5;2194:21;2246:4;2239:5;2235:16;2284:3;2275:6;2270:3;2266:16;2263:25;2260:112;;;2291:79;;:::i;:::-;2260:112;2381:41;2415:6;2410:3;2405;2381:41;:::i;:::-;2100:328;2016:412;;;;;:::o;2448:340::-;2504:5;2553:3;2546:4;2538:6;2534:17;2530:27;2520:122;;2561:79;;:::i;:::-;2520:122;2678:6;2665:20;2703:79;2778:3;2770:6;2763:4;2755:6;2751:17;2703:79;:::i;:::-;2694:88;;2510:278;2448:340;;;;:::o;2794:77::-;2831:7;2860:5;2849:16;;2794:77;;;:::o;2877:122::-;2950:24;2968:5;2950:24;:::i;:::-;2943:5;2940:35;2930:63;;2989:1;2986;2979:12;2930:63;2877:122;:::o;3005:139::-;3051:5;3089:6;3076:20;3067:29;;3105:33;3132:5;3105:33;:::i;:::-;3005:139;;;;:::o;3177:1083::-;3253:5;3297:4;3285:9;3280:3;3276:19;3272:30;3269:117;;;3305:79;;:::i;:::-;3269:117;3404:21;3420:4;3404:21;:::i;:::-;3395:30;;3512:1;3501:9;3497:17;3484:31;3542:18;3534:6;3531:30;3528:117;;;3564:79;;:::i;:::-;3528:117;3684:59;3739:3;3730:6;3719:9;3715:22;3684:59;:::i;:::-;3677:4;3670:5;3666:16;3659:85;3435:320;3845:2;3834:9;3830:18;3817:32;3876:18;3868:6;3865:30;3862:117;;;3898:79;;:::i;:::-;3862:117;4018:59;4073:3;4064:6;4053:9;4049:22;4018:59;:::i;:::-;4011:4;4004:5;4000:16;3993:85;3765:324;4151:2;4192:49;4237:3;4228:6;4217:9;4213:22;4192:49;:::i;:::-;4185:4;4178:5;4174:16;4167:75;4099:154;3177:1083;;;;:::o;4266:543::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:119;;;4407:79;;:::i;:::-;4369:119;4555:1;4544:9;4540:17;4527:31;4585:18;4577:6;4574:30;4571:117;;;4607:79;;:::i;:::-;4571:117;4712:80;4784:7;4775:6;4764:9;4760:22;4712:80;:::i;:::-;4702:90;;4498:304;4266:543;;;;:::o;4815:77::-;4852:7;4881:5;4870:16;;4815:77;;;:::o;4898:118::-;4985:24;5003:5;4985:24;:::i;:::-;4980:3;4973:37;4898:118;;:::o;5022:222::-;5115:4;5153:2;5142:9;5138:18;5130:26;;5166:71;5234:1;5223:9;5219:17;5210:6;5166:71;:::i;:::-;5022:222;;;;:::o;5271:740::-;5342:5;5386:4;5374:9;5369:3;5365:19;5361:30;5358:117;;;5394:79;;:::i;:::-;5358:117;5493:21;5509:4;5493:21;:::i;:::-;5484:30;;5601:1;5590:9;5586:17;5573:31;5631:18;5623:6;5620:30;5617:117;;;5653:79;;:::i;:::-;5617:117;5773:59;5828:3;5819:6;5808:9;5804:22;5773:59;:::i;:::-;5766:4;5759:5;5755:16;5748:85;5524:320;5902:2;5943:49;5988:3;5979:6;5968:9;5964:22;5943:49;:::i;:::-;5936:4;5929:5;5925:16;5918:75;5854:150;5271:740;;;;:::o;6017:533::-;6098:6;6147:2;6135:9;6126:7;6122:23;6118:32;6115:119;;;6153:79;;:::i;:::-;6115:119;6301:1;6290:9;6286:17;6273:31;6331:18;6323:6;6320:30;6317:117;;;6353:79;;:::i;:::-;6317:117;6458:75;6525:7;6516:6;6505:9;6501:22;6458:75;:::i;:::-;6448:85;;6244:299;6017:533;;;;:::o;6556:307::-;6617:4;6707:18;6699:6;6696:30;6693:56;;;6729:18;;:::i;:::-;6693:56;6767:29;6789:6;6767:29;:::i;:::-;6759:37;;6851:4;6845;6841:15;6833:23;;6556:307;;;:::o;6869:410::-;6946:5;6971:65;6987:48;7028:6;6987:48;:::i;:::-;6971:65;:::i;:::-;6962:74;;7059:6;7052:5;7045:21;7097:4;7090:5;7086:16;7135:3;7126:6;7121:3;7117:16;7114:25;7111:112;;;7142:79;;:::i;:::-;7111:112;7232:41;7266:6;7261:3;7256;7232:41;:::i;:::-;6952:327;6869:410;;;;;:::o;7298:338::-;7353:5;7402:3;7395:4;7387:6;7383:17;7379:27;7369:122;;7410:79;;:::i;:::-;7369:122;7527:6;7514:20;7552:78;7626:3;7618:6;7611:4;7603:6;7599:17;7552:78;:::i;:::-;7543:87;;7359:277;7298:338;;;;:::o;7642:126::-;7679:7;7719:42;7712:5;7708:54;7697:65;;7642:126;;;:::o;7774:96::-;7811:7;7840:24;7858:5;7840:24;:::i;:::-;7829:35;;7774:96;;;:::o;7876:122::-;7949:24;7967:5;7949:24;:::i;:::-;7942:5;7939:35;7929:63;;7988:1;7985;7978:12;7929:63;7876:122;:::o;8004:139::-;8050:5;8088:6;8075:20;8066:29;;8104:33;8131:5;8104:33;:::i;:::-;8004:139;;;;:::o;8176:1099::-;8253:5;8297:4;8285:9;8280:3;8276:19;8272:30;8269:117;;;8305:79;;:::i;:::-;8269:117;8404:21;8420:4;8404:21;:::i;:::-;8395:30;;8517:1;8506:9;8502:17;8489:31;8547:18;8539:6;8536:30;8533:117;;;8569:79;;:::i;:::-;8533:117;8689:58;8743:3;8734:6;8723:9;8719:22;8689:58;:::i;:::-;8682:4;8675:5;8671:16;8664:84;8435:324;8820:2;8861:49;8906:3;8897:6;8886:9;8882:22;8861:49;:::i;:::-;8854:4;8847:5;8843:16;8836:75;8769:153;9012:2;9001:9;8997:18;8984:32;9043:18;9035:6;9032:30;9029:117;;;9065:79;;:::i;:::-;9029:117;9185:71;9252:3;9243:6;9232:9;9228:22;9185:71;:::i;:::-;9178:4;9171:5;9167:16;9160:97;8932:336;8176:1099;;;;:::o;9281:545::-;9368:6;9417:2;9405:9;9396:7;9392:23;9388:32;9385:119;;;9423:79;;:::i;:::-;9385:119;9571:1;9560:9;9556:17;9543:31;9601:18;9593:6;9590:30;9587:117;;;9623:79;;:::i;:::-;9587:117;9728:81;9801:7;9792:6;9781:9;9777:22;9728:81;:::i;:::-;9718:91;;9514:305;9281:545;;;;:::o;9832:118::-;9919:24;9937:5;9919:24;:::i;:::-;9914:3;9907:37;9832:118;;:::o;9956:222::-;10049:4;10087:2;10076:9;10072:18;10064:26;;10100:71;10168:1;10157:9;10153:17;10144:6;10100:71;:::i;:::-;9956:222;;;;:::o;10184:99::-;10236:6;10270:5;10264:12;10254:22;;10184:99;;;:::o;10289:169::-;10373:11;10407:6;10402:3;10395:19;10447:4;10442:3;10438:14;10423:29;;10289:169;;;;:::o;10464:307::-;10532:1;10542:113;10556:6;10553:1;10550:13;10542:113;;;10641:1;10636:3;10632:11;10626:18;10622:1;10617:3;10613:11;10606:39;10578:2;10575:1;10571:10;10566:15;;10542:113;;;10673:6;10670:1;10667:13;10664:101;;;10753:1;10744:6;10739:3;10735:16;10728:27;10664:101;10513:258;10464:307;;;:::o;10777:364::-;10865:3;10893:39;10926:5;10893:39;:::i;:::-;10948:71;11012:6;11007:3;10948:71;:::i;:::-;10941:78;;11028:52;11073:6;11068:3;11061:4;11054:5;11050:16;11028:52;:::i;:::-;11105:29;11127:6;11105:29;:::i;:::-;11100:3;11096:39;11089:46;;10869:272;10777:364;;;;:::o;11147:118::-;11234:24;11252:5;11234:24;:::i;:::-;11229:3;11222:37;11147:118;;:::o;11271:735::-;11488:4;11526:3;11515:9;11511:19;11503:27;;11540:71;11608:1;11597:9;11593:17;11584:6;11540:71;:::i;:::-;11658:9;11652:4;11648:20;11643:2;11632:9;11628:18;11621:48;11686:78;11759:4;11750:6;11686:78;:::i;:::-;11678:86;;11811:9;11805:4;11801:20;11796:2;11785:9;11781:18;11774:48;11839:78;11912:4;11903:6;11839:78;:::i;:::-;11831:86;;11927:72;11995:2;11984:9;11980:18;11971:6;11927:72;:::i;:::-;11271:735;;;;;;;:::o;12012:533::-;12181:4;12219:2;12208:9;12204:18;12196:26;;12232:71;12300:1;12289:9;12285:17;12276:6;12232:71;:::i;:::-;12350:9;12344:4;12340:20;12335:2;12324:9;12320:18;12313:48;12378:78;12451:4;12442:6;12378:78;:::i;:::-;12370:86;;12466:72;12534:2;12523:9;12519:18;12510:6;12466:72;:::i;:::-;12012:533;;;;;;:::o;12551:148::-;12653:11;12690:3;12675:18;;12551:148;;;;:::o;12705:214::-;12845:66;12841:1;12833:6;12829:14;12822:90;12705:214;:::o;12925:400::-;13085:3;13106:84;13188:1;13183:3;13106:84;:::i;:::-;13099:91;;13199:93;13288:3;13199:93;:::i;:::-;13317:1;13312:3;13308:11;13301:18;;12925:400;;;:::o;13331:79::-;13370:7;13399:5;13388:16;;13331:79;;;:::o;13416:157::-;13521:45;13541:24;13559:5;13541:24;:::i;:::-;13521:45;:::i;:::-;13516:3;13509:58;13416:157;;:::o;13579:663::-;13820:3;13842:148;13986:3;13842:148;:::i;:::-;13835:155;;14000:75;14071:3;14062:6;14000:75;:::i;:::-;14100:2;14095:3;14091:12;14084:19;;14113:75;14184:3;14175:6;14113:75;:::i;:::-;14213:2;14208:3;14204:12;14197:19;;14233:3;14226:10;;13579:663;;;;;:::o;14248:98::-;14299:6;14333:5;14327:12;14317:22;;14248:98;;;:::o;14352:168::-;14435:11;14469:6;14464:3;14457:19;14509:4;14504:3;14500:14;14485:29;;14352:168;;;;:::o;14526:360::-;14612:3;14640:38;14672:5;14640:38;:::i;:::-;14694:70;14757:6;14752:3;14694:70;:::i;:::-;14687:77;;14773:52;14818:6;14813:3;14806:4;14799:5;14795:16;14773:52;:::i;:::-;14850:29;14872:6;14850:29;:::i;:::-;14845:3;14841:39;14834:46;;14616:270;14526:360;;;;:::o;14892:419::-;15031:4;15069:2;15058:9;15054:18;15046:26;;15082:71;15150:1;15139:9;15135:17;15126:6;15082:71;:::i;:::-;15200:9;15194:4;15190:20;15185:2;15174:9;15170:18;15163:48;15228:76;15299:4;15290:6;15228:76;:::i;:::-;15220:84;;14892:419;;;;;:::o;15317:149::-;15353:7;15393:66;15386:5;15382:78;15371:89;;15317:149;;;:::o;15472:120::-;15544:23;15561:5;15544:23;:::i;:::-;15537:5;15534:34;15524:62;;15582:1;15579;15572:12;15524:62;15472:120;:::o;15598:141::-;15654:5;15685:6;15679:13;15670:22;;15701:32;15727:5;15701:32;:::i;:::-;15598:141;;;;:::o;15745:349::-;15814:6;15863:2;15851:9;15842:7;15838:23;15834:32;15831:119;;;15869:79;;:::i;:::-;15831:119;15989:1;16014:63;16069:7;16060:6;16049:9;16045:22;16014:63;:::i;:::-;16004:73;;15960:127;15745:349;;;;:::o;16100:167::-;16240:19;16236:1;16228:6;16224:14;16217:43;16100:167;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:86::-;17105:7;17145:4;17138:5;17134:16;17123:27;;17070:86;;;:::o;17162:180::-;17210:77;17207:1;17200:88;17307:4;17304:1;17297:15;17331:4;17328:1;17321:15;17348:237;17386:3;17405:18;17421:1;17405:18;:::i;:::-;17400:23;;17437:18;17453:1;17437:18;:::i;:::-;17432:23;;17527:1;17521:4;17517:12;17514:1;17511:19;17508:45;;;17533:18;;:::i;:::-;17508:45;17577:1;17574;17570:9;17563:16;;17348:237;;;;:::o;17591:112::-;17674:22;17690:5;17674:22;:::i;:::-;17669:3;17662:35;17591:112;;:::o;17709:545::-;17882:4;17920:3;17909:9;17905:19;17897:27;;17934:71;18002:1;17991:9;17987:17;17978:6;17934:71;:::i;:::-;18015:68;18079:2;18068:9;18064:18;18055:6;18015:68;:::i;:::-;18093:72;18161:2;18150:9;18146:18;18137:6;18093:72;:::i;:::-;18175;18243:2;18232:9;18228:18;18219:6;18175:72;:::i;:::-;17709:545;;;;;;;:::o"},"methodIdentifiers":{"GET_EIP712DOMAIN_PACKETHASH((string,string,uint256))":"4bc39162","GET_PERSON_PACKETHASH((string,uint256))":"8f4f876a","getDomainHash()":"83ebb771","verifySignedPerson((bytes,address,(string,uint256)))":"ea23cf6e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct EIP712Domain\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_EIP712DOMAIN_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"GET_PERSON_PACKETHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"age\",\"type\":\"uint256\"}],\"internalType\":\"struct Person\",\"name\":\"message\",\"type\":\"tuple\"}],\"internalType\":\"struct signedPerson\",\"name\":\"_input\",\"type\":\"tuple\"}],\"name\":\"verifySignedPerson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MockEIP712Decoder.sol\":\"MockEIP712Decoder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/EIP712Decoder.sol\":{\"keccak256\":\"0x85aeacb6ae90ad6e1f00a85b224c1a98e351a3dd683a64c9495f821a78d82503\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b6c59a28ec20f9ff48440f4142c60a8b35da422078b93ffcc0e15230831c8d5\",\"dweb:/ipfs/QmQRZSjUQeGwtngbTuugYsEHiQxJ3ELtyGErp7tFJttAmG\"]},\"contracts/MockEIP712Decoder.sol\":{\"keccak256\":\"0x337673bb165b161a4dc3c06a7260a7720154bc7f3599a48474f42ef2d3e641cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://401d1890f9ea5c28e7ae1fbb5866d8e95124ee35a0f19b554ef4fb9d5abdaeff\",\"dweb:/ipfs/QmUQpn7Xrjq5jfWkSpuYRDEQ6zjNpDtHFEeLpQH8gJkuQJ\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.dbg.json b/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.dbg.json deleted file mode 100644 index 50f6bf7..0000000 --- a/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/21fa6fc66024836561f3d36a91b0eddc.json" -} diff --git a/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.json b/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.json deleted file mode 100644 index b38fc99..0000000 --- a/artifacts/contracts/EIP712Decoder.sol/EIP712Decoder.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EIP712Decoder", - "sourceName": "contracts/EIP712Decoder.sol", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - } - ], - "internalType": "struct EIP712Domain", - "name": "_input", - "type": "tuple" - } - ], - "name": "GET_EIP712DOMAIN_PACKETHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "uint256", - "name": "age", - "type": "uint256" - } - ], - "internalType": "struct Person", - "name": "_input", - "type": "tuple" - } - ], - "name": "GET_PERSON_PACKETHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getDomainHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "uint256", - "name": "age", - "type": "uint256" - } - ], - "internalType": "struct Person", - "name": "message", - "type": "tuple" - } - ], - "internalType": "struct signedPerson", - "name": "_input", - "type": "tuple" - } - ], - "name": "verifySignedPerson", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.dbg.json b/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.dbg.json deleted file mode 100644 index 50f6bf7..0000000 --- a/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/21fa6fc66024836561f3d36a91b0eddc.json" -} diff --git a/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.json b/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.json deleted file mode 100644 index b5b8a84..0000000 --- a/artifacts/contracts/EIP712Decoder.sol/ERC1271Contract.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC1271Contract", - "sourceName": "contracts/EIP712Decoder.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "magicValue", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json deleted file mode 100644 index 3cfa10d..0000000 --- a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/f82bff085b4f4ec6cd79ef560ec72a99.json" -} diff --git a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json b/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json deleted file mode 100644 index 1e0ebd2..0000000 --- a/artifacts/contracts/MockEIP712Decoder.sol/MockEIP712Decoder.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MockEIP712Decoder", - "sourceName": "contracts/MockEIP712Decoder.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - } - ], - "internalType": "struct EIP712Domain", - "name": "_input", - "type": "tuple" - } - ], - "name": "GET_EIP712DOMAIN_PACKETHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "uint256", - "name": "age", - "type": "uint256" - } - ], - "internalType": "struct Person", - "name": "_input", - "type": "tuple" - } - ], - "name": "GET_PERSON_PACKETHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getDomainHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "components": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "uint256", - "name": "age", - "type": "uint256" - } - ], - "internalType": "struct Person", - "name": "message", - "type": "tuple" - } - ], - "internalType": "struct signedPerson", - "name": "_input", - "type": "tuple" - } - ], - "name": "verifySignedPerson", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040516200105b3803806200105b83398181016040528101906200003791906200014d565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e6040518060400160405280601181526020017f4d6f636b4549503731324465636f646572000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001620000ea959493929190620001f0565b60405160208183030381529060405280519060200120600081905550506200024d565b600080fd5b6000819050919050565b620001278162000112565b81146200013357600080fd5b50565b60008151905062000147816200011c565b92915050565b6000602082840312156200016657620001656200010d565b5b6000620001768482850162000136565b91505092915050565b6000819050919050565b62000194816200017f565b82525050565b620001a58162000112565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001d882620001ab565b9050919050565b620001ea81620001cb565b82525050565b600060a08201905062000207600083018862000189565b62000216602083018762000189565b62000225604083018662000189565b6200023460608301856200019a565b620002436080830184620001df565b9695505050505050565b610dfe806200025d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220727963e7949d6f78225b2482c84bbede19287195a8eb16afd46db7afea89f86364736f6c634300080d0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634bc391621461005157806383ebb771146100815780638f4f876a1461009f578063ea23cf6e146100cf575b600080fd5b61006b60048036038101906100669190610674565b6100ff565b60405161007891906106d6565b60405180910390f35b610089610166565b60405161009691906106d6565b60405180910390f35b6100b960048036038101906100b4919061075d565b61016f565b6040516100c691906106d6565b60405180910390f35b6100e960048036038101906100e49190610941565b6101d0565b6040516100f69190610999565b60405180910390f35b6000807fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8360000151846020015185604001516040516020016101459493929190610a4b565b60405160208183030381529060405290508080519060200120915050919050565b60008054905090565b6000807f4b1b66e1dad0eb5853b62dd86ebac7b66c400129b72da1ff5fda43303a4f44db836000015184602001516040516020016101af93929190610a9e565b60405160208183030381529060405290508080519060200120915050919050565b6000806101e0836040015161016f565b905060006101ec610166565b826040516020016101fe929190610b54565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff160361026b57600061025e82866000015161036b565b9050809350505050610366565b6000846020015173ffffffffffffffffffffffffffffffffffffffff16631626ba7e8387600001516040518363ffffffff1660e01b81526004016102b0929190610be0565b602060405180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f19190610c68565b9050631626ba7e60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610ce1565b60405180910390fd5b846020015193505050505b919050565b60008060008060418551146103865760009350505050610438565b6020850151925060408501519150606085015160001a9050601b8160ff1610156103ba57601b816103b79190610d3d565b90505b601b8160ff16141580156103d25750601c8160ff1614155b156103e35760009350505050610438565b600186828585604051600081526020016040526040516104069493929190610d83565b6020604051602081039080840390855afa158015610428573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104a082610457565b810181811067ffffffffffffffff821117156104bf576104be610468565b5b80604052505050565b60006104d261043e565b90506104de8282610497565b919050565b600080fd5b600080fd5b600080fd5b600067ffffffffffffffff82111561050d5761050c610468565b5b61051682610457565b9050602081019050919050565b82818337600083830152505050565b6000610545610540846104f2565b6104c8565b905082815260208101848484011115610561576105606104ed565b5b61056c848285610523565b509392505050565b600082601f830112610589576105886104e8565b5b8135610599848260208601610532565b91505092915050565b6000819050919050565b6105b5816105a2565b81146105c057600080fd5b50565b6000813590506105d2816105ac565b92915050565b6000606082840312156105ee576105ed610452565b5b6105f860606104c8565b9050600082013567ffffffffffffffff811115610618576106176104e3565b5b61062484828501610574565b600083015250602082013567ffffffffffffffff811115610648576106476104e3565b5b61065484828501610574565b6020830152506040610668848285016105c3565b60408301525092915050565b60006020828403121561068a57610689610448565b5b600082013567ffffffffffffffff8111156106a8576106a761044d565b5b6106b4848285016105d8565b91505092915050565b6000819050919050565b6106d0816106bd565b82525050565b60006020820190506106eb60008301846106c7565b92915050565b60006040828403121561070757610706610452565b5b61071160406104c8565b9050600082013567ffffffffffffffff811115610731576107306104e3565b5b61073d84828501610574565b6000830152506020610751848285016105c3565b60208301525092915050565b60006020828403121561077357610772610448565b5b600082013567ffffffffffffffff8111156107915761079061044d565b5b61079d848285016106f1565b91505092915050565b600067ffffffffffffffff8211156107c1576107c0610468565b5b6107ca82610457565b9050602081019050919050565b60006107ea6107e5846107a6565b6104c8565b905082815260208101848484011115610806576108056104ed565b5b610811848285610523565b509392505050565b600082601f83011261082e5761082d6104e8565b5b813561083e8482602086016107d7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061087282610847565b9050919050565b61088281610867565b811461088d57600080fd5b50565b60008135905061089f81610879565b92915050565b6000606082840312156108bb576108ba610452565b5b6108c560606104c8565b9050600082013567ffffffffffffffff8111156108e5576108e46104e3565b5b6108f184828501610819565b600083015250602061090584828501610890565b602083015250604082013567ffffffffffffffff811115610929576109286104e3565b5b610935848285016106f1565b60408301525092915050565b60006020828403121561095757610956610448565b5b600082013567ffffffffffffffff8111156109755761097461044d565b5b610981848285016108a5565b91505092915050565b61099381610867565b82525050565b60006020820190506109ae600083018461098a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156109ee5780820151818401526020810190506109d3565b838111156109fd576000848401525b50505050565b6000610a0e826109b4565b610a1881856109bf565b9350610a288185602086016109d0565b610a3181610457565b840191505092915050565b610a45816105a2565b82525050565b6000608082019050610a6060008301876106c7565b8181036020830152610a728186610a03565b90508181036040830152610a868185610a03565b9050610a956060830184610a3c565b95945050505050565b6000606082019050610ab360008301866106c7565b8181036020830152610ac58185610a03565b9050610ad46040830184610a3c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000610b1d600283610adc565b9150610b2882610ae7565b600282019050919050565b6000819050919050565b610b4e610b49826106bd565b610b33565b82525050565b6000610b5f82610b10565b9150610b6b8285610b3d565b602082019150610b7b8284610b3d565b6020820191508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000610bb282610b8b565b610bbc8185610b96565b9350610bcc8185602086016109d0565b610bd581610457565b840191505092915050565b6000604082019050610bf560008301856106c7565b8181036020830152610c078184610ba7565b90509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c4581610c10565b8114610c5057600080fd5b50565b600081519050610c6281610c3c565b92915050565b600060208284031215610c7e57610c7d610448565b5b6000610c8c84828501610c53565b91505092915050565b7f494e56414c49445f5349474e4154555245000000000000000000000000000000600082015250565b6000610ccb6011836109bf565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d4882610d01565b9150610d5383610d01565b92508260ff03821115610d6957610d68610d0e565b5b828201905092915050565b610d7d81610d01565b82525050565b6000608082019050610d9860008301876106c7565b610da56020830186610d74565b610db260408301856106c7565b610dbf60608301846106c7565b9594505050505056fea2646970667358221220727963e7949d6f78225b2482c84bbede19287195a8eb16afd46db7afea89f86364736f6c634300080d0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} From 999d524d52786b21fb2a669d40a994ac0809b411 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 21:01:36 -0700 Subject: [PATCH 15/19] Tests passing --- EIP712Decoder.sol | 136 ------------------------------------ contracts/EIP712Decoder.sol | 124 ++++++++++++++++---------------- index.js | 27 ++++--- index.ts | 86 +++++++++++++---------- test.js | 52 +++++++++++++- 5 files changed, 182 insertions(+), 243 deletions(-) delete mode 100644 EIP712Decoder.sol diff --git a/EIP712Decoder.sol b/EIP712Decoder.sol deleted file mode 100644 index ad5181b..0000000 --- a/EIP712Decoder.sol +++ /dev/null @@ -1,136 +0,0 @@ -pragma solidity ^0.8.13; -// SPDX-License-Identifier: MIT - - -struct EIP712Domain { - string name; - string version; - uint256 chainId; -} - -bytes32 constant EIP712DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId)"); - - -struct signedPerson { - bytes signature; - address signer; - Person message; -} - - -struct Person { - string name; - uint256 age; -} - -bytes32 constant PERSON_TYPEHASH = keccak256("Person(string name,uint256 age)"); - - -contract ERC1271Contract { - - // bytes4(keccak256("isValidSignature(bytes32,bytes)") - bytes4 constant internal MAGICVALUE = 0x1626ba7e; - - /** - * @dev Should return whether the signature provided is valid for the provided hash - * @param _hash Hash of the data to be signed - * @param _signature Signature byte array associated with _hash - * - * MUST return the bytes4 magic value 0x1626ba7e when function passes. - * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5) - * MUST allow external calls - */ - function isValidSignature( - bytes32 _hash, - bytes memory _signature) - public - view - returns (bytes4 magicValue); -} - -contract EIP712Decoder { - - /** - * @dev Recover signer address from a message by using their signature - * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. - * @param sig bytes signature, the signature is generated using web3.eth.sign() - */ - function recover(bytes32 hash, bytes memory sig) internal pure returns (address) { - bytes32 r; - bytes32 s; - uint8 v; - - // Check the signature length - if (sig.length != 65) { - return (address(0)); - } - - // Divide the signature in r, s and v variables - assembly { - r := mload(add(sig, 32)) - s := mload(add(sig, 64)) - v := byte(0, mload(add(sig, 96))) - } - // Version of signature should be 27 or 28, but 0 and 1 are also possible versions - if (v < 27) { - v += 27; - } - - // If the version is correct return the signer address - if (v != 27 && v != 28) { - return (address(0)); - } else { - return ecrecover(hash, v, r, s); - } - } - - function GET_EIP712DOMAIN_PACKETHASH (EIP712Domain memory _input) public pure returns (bytes32) { - - bytes memory encoded = abi.encode( - EIP712DOMAIN_TYPEHASH, - _input.name, - _input.version, - _input.chainId - ); - - return keccak256(encoded); - } - - function GET_PERSON_PACKETHASH (Person memory _input) public pure returns (bytes32) { - - bytes memory encoded = abi.encode( - PERSON_TYPEHASH, - _input.name, - _input.age - ); - - return keccak256(encoded); - } - - function verifySignedPerson(signedPerson memory _input) public view returns (address) { - bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message); - bytes32 digest = keccak256( - abi.encodePacked( - "\x19\x01", - getDomainHash(), - packetHash - ) - ); - - if (_input.signer == 0x0000000000000000000000000000000000000000) { - address recoveredSigner = recover( - digest, - _input.signature - ); - return recoveredSigner; - } else { - // EIP-1271 signature verification - bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature); - require(result == 0x1626ba7e, "INVALID_SIGNATURE"); - return _input.signer; - } - } - - -} - diff --git a/contracts/EIP712Decoder.sol b/contracts/EIP712Decoder.sol index 27ebf72..5a10b97 100644 --- a/contracts/EIP712Decoder.sol +++ b/contracts/EIP712Decoder.sol @@ -2,35 +2,7 @@ pragma solidity ^0.8.13; // SPDX-License-Identifier: MIT -struct EIP712Domain { - string name; - string version; - uint256 chainId; -} - -bytes32 constant EIP712DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId)"); - - -struct signedPerson { - bytes signature; - address signer; - Person message; -} - - -struct Person { - string name; - uint256 age; -} - -bytes32 constant PERSON_TYPEHASH = keccak256("Person(string name,uint256 age)"); - - abstract contract ERC1271Contract { - - // bytes4(keccak256("isValidSignature(bytes32,bytes)") - bytes4 constant internal MAGICVALUE = 0x1626ba7e; - /** * @dev Should return whether the signature provided is valid for the provided hash * @param _hash Hash of the data to be signed @@ -52,6 +24,31 @@ abstract contract ERC1271Contract { abstract contract EIP712Decoder { function getDomainHash () public view virtual returns (bytes32); +struct EIP712Domain { + string name; + string version; + uint256 chainId; + address verifyingContract; +} + +bytes32 constant public EIP712DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"); + + +struct SignedPerson { + bytes signature; + address signer; + Person message; +} + + +struct Person { + string name; + uint256 age; +} + +bytes32 constant public PERSON_TYPEHASH = keccak256("Person(string name,uint256 age)"); + + /** * @dev Recover signer address from a message by using their signature * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. @@ -87,51 +84,60 @@ abstract contract EIP712Decoder { } function GET_EIP712DOMAIN_PACKETHASH (EIP712Domain memory _input) public pure returns (bytes32) { - + bytes memory encoded = GET_EIP712DOMAIN_PACKET(_input); + return keccak256(encoded); + } + + function GET_EIP712DOMAIN_PACKET (EIP712Domain memory _input) public pure returns (bytes memory) { bytes memory encoded = abi.encode( EIP712DOMAIN_TYPEHASH, - _input.name, - _input.version, - _input.chainId + keccak256(bytes(_input.name)), + keccak256(bytes(_input.version)), + _input.chainId, + _input.verifyingContract ); - - return keccak256(encoded); + return encoded; } + function GET_PERSON_PACKETHASH (Person memory _input) public pure returns (bytes32) { - + bytes memory encoded = GET_PERSON_PACKET(_input); + return keccak256(encoded); + } + + function GET_PERSON_PACKET (Person memory _input) public pure returns (bytes memory) { bytes memory encoded = abi.encode( PERSON_TYPEHASH, - _input.name, + keccak256(bytes(_input.name)), _input.age ); - - return keccak256(encoded); + return encoded; } + - function verifySignedPerson(signedPerson memory _input) public view returns (address) { - bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message); - bytes32 digest = keccak256( - abi.encodePacked( - "\x19\x01", - getDomainHash(), - packetHash - ) - ); + function verifySignedPerson(SignedPerson memory _input) public view returns (address) { + bytes32 packetHash = GET_PERSON_PACKETHASH(_input.message); + bytes32 digest = keccak256( + abi.encodePacked( + "\x19\x01", + getDomainHash(), + packetHash + ) + ); - if (_input.signer == 0x0000000000000000000000000000000000000000) { - address recoveredSigner = recover( - digest, - _input.signature - ); - return recoveredSigner; - } else { - // EIP-1271 signature verification - bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature); - require(result == 0x1626ba7e, "INVALID_SIGNATURE"); - return _input.signer; - } + if (_input.signer == 0x0000000000000000000000000000000000000000) { + address recoveredSigner = recover( + digest, + _input.signature + ); + return recoveredSigner; + } else { + // EIP-1271 signature verification + bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature); + require(result == 0x1626ba7e, "INVALID_SIGNATURE"); + return _input.signer; } + } } diff --git a/index.js b/index.js index 264b75e..2717b17 100644 --- a/index.js +++ b/index.js @@ -29,7 +29,7 @@ var path = require('path'); var encodeType = require('signtypeddata-v5').TypedDataUtils.encodeType; var generateFile = function (types, methods, log) { if (log === void 0) { log = false; } - return "pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n".concat(log ? 'import "hardhat/console.log";' : '', "\n\n").concat(types, "\n\nabstract contract ERC1271Contract {\n\n // bytes4(keccak256(\"isValidSignature(bytes32,bytes)\")\n bytes4 constant internal MAGICVALUE = 0x1626ba7e;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n virtual\n returns (bytes4 magicValue);\n}\n\nabstract contract EIP712Decoder {\n function getDomainHash () public view virtual returns (bytes32);\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n").concat(methods, "\n\n}\n\n"); + return "pragma solidity ^0.8.13;\n// SPDX-License-Identifier: MIT\n".concat(log ? 'import "hardhat/console.log";' : '', "\n\nabstract contract ERC1271Contract {\n /**\n * @dev Should return whether the signature provided is valid for the provided hash\n * @param _hash Hash of the data to be signed\n * @param _signature Signature byte array associated with _hash\n *\n * MUST return the bytes4 magic value 0x1626ba7e when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes32 _hash, \n bytes memory _signature)\n public\n view \n virtual\n returns (bytes4 magicValue);\n}\n\nabstract contract EIP712Decoder {\n function getDomainHash () public view virtual returns (bytes32);\n\n").concat(types, "\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param sig bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes memory sig) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (sig.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n assembly {\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n }\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n return ecrecover(hash, v, r, s);\n }\n }\n").concat(methods, "\n\n}\n\n"); }; var LOGGING_ENABLED = false; function generateCodeFrom(types, entryTypes) { @@ -37,11 +37,11 @@ function generateCodeFrom(types, entryTypes) { var packetHashGetters = []; Object.keys(types.types).forEach(function (typeName) { var fields = types.types[typeName]; - var typeHash = "bytes32 constant ".concat(typeName.toUpperCase(), "_TYPEHASH = keccak256(\"").concat(encodeType(typeName, types.types), "\");\n"); + var typeHash = "bytes32 constant public ".concat(typeName.toUpperCase(), "_TYPEHASH = keccak256(\"").concat(encodeType(typeName, types.types), "\");\n"); var struct = "struct ".concat(typeName, " {\n").concat(fields.map(function (field) { return " ".concat(field.type, " ").concat(field.name, ";\n"); }).join(''), "}\n"); // Generate signed${TYPE} struct for entryTypes if (entryTypes.includes(typeName)) { - var signedStruct = "\nstruct signed".concat(typeName, " {\n bytes signature;\n address signer;\n ").concat(typeName, " message;\n}\n"); + var signedStruct = "\nstruct Signed".concat(typeName, " {\n bytes signature;\n address signer;\n ").concat(typeName, " message;\n}\n"); results.push({ struct: signedStruct, typeHash: '' }); } generatePacketHashGetters(types, typeName, fields, packetHashGetters); @@ -55,7 +55,7 @@ function generatePacketHashGetters(types, typeName, fields, packetHashGetters) { generateArrayPacketHashGetter(typeName, packetHashGetters); } else { - packetHashGetters.push("\n function ".concat(packetHashGetterName(typeName), " (").concat(typeName, " memory _input) public pure returns (bytes32) {\n ").concat(LOGGING_ENABLED ? "console.log(\"".concat(typeName, " typehash: \");\n console.logBytes32(").concat(typeName.toUpperCase(), "_TYPEHASH);") : '', "\n bytes memory encoded = abi.encode(\n ").concat(typeName.toUpperCase(), "_TYPEHASH,\n ").concat(fields.map(getEncodedValueFor).join(',\n '), "\n );\n ").concat(LOGGING_ENABLED ? "console.log(\"Encoded ".concat(typeName, ": \");\n console.logBytes(encoded);") : '', "\n return keccak256(encoded);\n }")); + packetHashGetters.push("\n function ".concat(packetHashGetterName(typeName), " (").concat(typeName, " memory _input) public pure returns (bytes32) {\n bytes memory encoded = ").concat(encodedTypeGetterName(typeName), "(_input);\n return keccak256(encoded);\n }\n \n function ").concat(encodedTypeGetterName(typeName), " (").concat(typeName, " memory _input) public pure returns (bytes memory) {\n bytes memory encoded = abi.encode(\n ").concat(typeName.toUpperCase(), "_TYPEHASH,\n ").concat(fields.map(getEncodedValueFor).join(',\n '), "\n );\n return encoded;\n }\n ")); } fields.forEach(function (field) { if (field.type.includes('[]')) { @@ -65,13 +65,18 @@ function generatePacketHashGetters(types, typeName, fields, packetHashGetters) { return packetHashGetters; } function getEncodedValueFor(field) { - var basicEncodableTypes = ['address', 'bool', 'bytes32', 'int', 'uint', 'uint256', 'string']; - var hashedTypes = ['bytes']; + var basicEncodableTypes = ['address', 'bool', 'bytes32', 'int', 'uint', 'uint256']; + var hashedTypes = ['bytes', 'string']; if (basicEncodableTypes.includes(field.type)) { return "_input.".concat(field.name); } if (hashedTypes.includes(field.type)) { - return "keccak256(_input.".concat(field.name, ")"); + if (field.type === 'bytes') { + return "keccak256(_input.".concat(field.name, ")"); + } + if (field.type === 'string') { + return "keccak256(bytes(_input.".concat(field.name, "))"); + } } return "".concat(packetHashGetterName(field.type), "(_input.").concat(field.name, ")"); } @@ -81,6 +86,12 @@ function packetHashGetterName(typeName) { } return "GET_".concat(typeName.toUpperCase(), "_PACKETHASH"); } +function encodedTypeGetterName(typeName) { + if (typeName.includes('[]')) { + return "GET_".concat(typeName.substr(0, typeName.length - 2).toUpperCase(), "_ARRAY_PACKET"); + } + return "GET_".concat(typeName.toUpperCase(), "_PACKET"); +} function generateArrayPacketHashGetter(typeName, packetHashGetters) { packetHashGetters.push("\n function ".concat(packetHashGetterName(typeName), " (").concat(typeName, " memory _input) public pure returns (bytes32) {\n bytes memory encoded;\n for (uint i = 0; i < _input.length; i++) {\n encoded = bytes.concat(\n encoded,\n ").concat(packetHashGetterName(typeName.substr(0, typeName.length - 2)), "(_input[i])\n );\n }\n ").concat(LOGGING_ENABLED ? "console.log(\"Encoded ".concat(typeName, ": \");\n console.logBytes(encoded);") : '', "\n bytes32 hash = keccak256(encoded);\n return hash;\n }")); } @@ -103,7 +114,7 @@ function generateSolidity(typeDef, shouldLog, entryTypes) { return newFileString; } function generateEntrypointMethods(entryTypes) { - return entryTypes.map(function (entryType) { return "\n function verifySigned".concat(entryType, "(signed").concat(entryType, " memory _input) public view returns (address) {\n bytes32 packetHash = ").concat(packetHashGetterName(entryType), "(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainHash(),\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n "); }).join('\n'); + return entryTypes.map(function (entryType) { return "\n function verifySigned".concat(entryType, "(Signed").concat(entryType, " memory _input) public view returns (address) {\n bytes32 packetHash = ").concat(packetHashGetterName(entryType), "(_input.message);\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainHash(),\n packetHash\n )\n );\n\n if (_input.signer == 0x0000000000000000000000000000000000000000) {\n address recoveredSigner = recover(\n digest,\n _input.signature\n );\n return recoveredSigner;\n } else {\n // EIP-1271 signature verification\n bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature);\n require(result == 0x1626ba7e, \"INVALID_SIGNATURE\");\n return _input.signer;\n }\n }\n "); }).join('\n'); } module.exports = { generateCodeFrom: generateCodeFrom, diff --git a/index.ts b/index.ts index 854da60..4da395c 100644 --- a/index.ts +++ b/index.ts @@ -47,13 +47,7 @@ const generateFile = (types, methods, log = false) => `pragma solidity ^0.8.13; // SPDX-License-Identifier: MIT ${log ? 'import "hardhat/console.log";' : ''} -${types} - abstract contract ERC1271Contract { - - // bytes4(keccak256("isValidSignature(bytes32,bytes)") - bytes4 constant internal MAGICVALUE = 0x1626ba7e; - /** * @dev Should return whether the signature provided is valid for the provided hash * @param _hash Hash of the data to be signed @@ -75,6 +69,8 @@ abstract contract ERC1271Contract { abstract contract EIP712Decoder { function getDomainHash () public view virtual returns (bytes32); +${types} + /** * @dev Recover signer address from a message by using their signature * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. @@ -126,13 +122,13 @@ function generateCodeFrom(types, entryTypes) { const packetHashGetters: Array = []; Object.keys(types.types).forEach((typeName) => { const fields = types.types[typeName]; - const typeHash = `bytes32 constant ${typeName.toUpperCase()}_TYPEHASH = keccak256("${encodeType(typeName, types.types)}");\n`; + const typeHash = `bytes32 constant public ${typeName.toUpperCase()}_TYPEHASH = keccak256("${encodeType(typeName, types.types)}");\n`; const struct = `struct ${typeName} {\n${fields.map((field) => { return ` ${field.type} ${field.name};\n`}).join('')}}\n`; // Generate signed${TYPE} struct for entryTypes if (entryTypes.includes(typeName)) { const signedStruct = ` -struct signed${typeName} { +struct Signed${typeName} { bytes signature; address signer; ${typeName} message; @@ -154,16 +150,18 @@ function generatePacketHashGetters (types, typeName, fields, packetHashGetters: } else { packetHashGetters.push(` function ${packetHashGetterName(typeName)} (${typeName} memory _input) public pure returns (bytes32) { - ${ LOGGING_ENABLED ? `console.log("${typeName} typehash: "); - console.logBytes32(${typeName.toUpperCase()}_TYPEHASH);` : ''} + bytes memory encoded = ${encodedTypeGetterName(typeName)}(_input); + return keccak256(encoded); + } + + function ${encodedTypeGetterName(typeName)} (${typeName} memory _input) public pure returns (bytes memory) { bytes memory encoded = abi.encode( ${ typeName.toUpperCase() }_TYPEHASH, ${ fields.map(getEncodedValueFor).join(',\n ') } ); - ${LOGGING_ENABLED ? `console.log("Encoded ${typeName}: "); - console.logBytes(encoded);` : ''} - return keccak256(encoded); - }`); + return encoded; + } + `); } fields.forEach((field) => { @@ -176,14 +174,19 @@ function generatePacketHashGetters (types, typeName, fields, packetHashGetters: } function getEncodedValueFor (field) { - const basicEncodableTypes = ['address', 'bool', 'bytes32', 'int', 'uint', 'uint256', 'string']; - const hashedTypes = ['bytes']; + const basicEncodableTypes = ['address', 'bool', 'bytes32', 'int', 'uint', 'uint256']; + const hashedTypes = ['bytes', 'string']; if (basicEncodableTypes.includes(field.type)) { return `_input.${field.name}`; } if (hashedTypes.includes(field.type)) { - return `keccak256(_input.${field.name})`; + if (field.type === 'bytes') { + return `keccak256(_input.${field.name})`; + } + if (field.type === 'string') { + return `keccak256(bytes(_input.${field.name}))`; + } } return `${packetHashGetterName(field.type)}(_input.${field.name})`; @@ -196,6 +199,13 @@ function packetHashGetterName (typeName) { return `GET_${typeName.toUpperCase()}_PACKETHASH`; } +function encodedTypeGetterName(typeName) { + if (typeName.includes('[]')) { + return `GET_${typeName.substr(0, typeName.length - 2).toUpperCase()}_ARRAY_PACKET`; + } + return `GET_${typeName.toUpperCase()}_PACKET`; +} + function generateArrayPacketHashGetter (typeName, packetHashGetters) { packetHashGetters.push(` function ${packetHashGetterName(typeName)} (${typeName} memory _input) public pure returns (bytes32) { @@ -241,29 +251,29 @@ function generateSolidity < function generateEntrypointMethods(entryTypes) { return entryTypes.map((entryType) => ` - function verifySigned${entryType}(signed${entryType} memory _input) public view returns (address) { - bytes32 packetHash = ${packetHashGetterName(entryType)}(_input.message); - bytes32 digest = keccak256( - abi.encodePacked( - "\\x19\\x01", - getDomainHash(), - packetHash - ) - ); + function verifySigned${entryType}(Signed${entryType} memory _input) public view returns (address) { + bytes32 packetHash = ${packetHashGetterName(entryType)}(_input.message); + bytes32 digest = keccak256( + abi.encodePacked( + "\\x19\\x01", + getDomainHash(), + packetHash + ) + ); - if (_input.signer == 0x0000000000000000000000000000000000000000) { - address recoveredSigner = recover( - digest, - _input.signature - ); - return recoveredSigner; - } else { - // EIP-1271 signature verification - bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature); - require(result == 0x1626ba7e, "INVALID_SIGNATURE"); - return _input.signer; - } + if (_input.signer == 0x0000000000000000000000000000000000000000) { + address recoveredSigner = recover( + digest, + _input.signature + ); + return recoveredSigner; + } else { + // EIP-1271 signature verification + bytes4 result = ERC1271Contract(_input.signer).isValidSignature(digest, _input.signature); + require(result == 0x1626ba7e, "INVALID_SIGNATURE"); + return _input.signer; } + } `).join('\n'); } diff --git a/test.js b/test.js index d74da3e..857ee24 100644 --- a/test.js +++ b/test.js @@ -19,6 +19,7 @@ const MessageTypes = { { name: 'name', type: 'string' }, { name: 'version', type: 'string' }, { name: 'chainId', type: 'uint256' }, + { name: 'verifyingContract', type: 'address' }, ], Person: [ { name: 'name', type: 'string' }, @@ -71,6 +72,7 @@ describe('EIP712Decoder', function () { // Deploy the contract const EIP712DecoderFactory = new ethers.ContractFactory(EIP712Decoder.abi, EIP712Decoder.bytecode, signer); contract = await EIP712DecoderFactory.deploy([1]); + message.domain.verifyingContract = contract.address; await contract.deployed(); // Create the typed data for testing @@ -78,6 +80,54 @@ describe('EIP712Decoder', function () { typedData.domain.verifyingContract = contract.address; }); + it('should generate the correct domain hash', async function () { + // Call the getDomainHash function + const domainHash = await contract.getDomainHash(); + + // Check if the domain hash is correct + expect(domainHash).to.equal('0x' + TypedDataUtils.eip712DomainHash(typedData, 'V4').toString('hex')); + }); + + it('should generate the correct person type hash', async function () { + const solidityPersonPackethash = await contract.PERSON_TYPEHASH(); + const personTypestring = TypedDataUtils.encodeType('Person', typedData.types).toString('hex'); + const jsPersonPackethash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(personTypestring)); + expect(solidityPersonPackethash).to.equal(jsPersonPackethash); + }); + + it('should generate the correct person packet', async function () { + const person = { + name: 'Alice', + age: 30, + }; + + const encoded = TypedDataUtils.encodeData( + 'Person', + person, + typedData.types, + 'V4' + ); + const solEncoded = await contract.GET_PERSON_PACKET(person); + expect(solEncoded).to.equal('0x' + encoded.toString('hex')); + }); + + it('should generate the correct person packet hash', async function () { + const person = { + name: 'Alice', + age: 30, + }; + + const domainHash = await contract.GET_PERSON_PACKETHASH(person); + + // Check if the domain hash is correct + expect(domainHash).to.equal('0x' + TypedDataUtils.hashStruct( + 'Person', + person, + typedData.types, + 'V4' + ).toString('hex')); + }); + it('should recover the correct signer', async function () { const signedStruct = signStruct(privateKey); @@ -90,7 +140,6 @@ describe('EIP712Decoder', function () { }); function signStruct (privateKey) { - console.dir(privateKey); const signature = sigUtil.signTypedData({ privateKey: fromHexString(privateKey.indexOf('0x') === 0 ? privateKey.substring(2) : privateKey), data: message, @@ -108,7 +157,6 @@ function signStruct (privateKey) { function fromHexString (_hexString) { const hexString = _hexString.toLowerCase(); - console.dir(hexString) if (!hexString || typeof hexString !== 'string') { throw new Error('Expected a hex string.'); } From a0b2303000c31838ce50f2420d1bfd219708640e Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 22:21:45 -0700 Subject: [PATCH 16/19] Update readme --- README.md | 69 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 462ef10..d090eef 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,11 @@ # EIP 712 Codegen +This module aims to automate the hard parts of using EIP-712 -[EIP 712: Sign Typed Data](https://eips.ethereum.org/EIPS/eip-712) as of 2022 is the most human-readable way of getting signatures from user that are easily parsed into solidity structs. -[The documentation](https://docs.metamask.io/guide/signing-data.html#sign-typed-data-v4) has not always been the greatest, and in particular I think this method has failed to catch on because writing the verification code is a huge pain. +[EIP 712: Sign Typed Data](https://eips.ethereum.org/EIPS/eip-712) as of 2023 is the most human-readable way of getting signatures from user that are easily parsed into solidity structs. + +[The documentation](https://docs.metamask.io/guide/signing-data.html#sign-typed-data-v4) is quite dense, and can be hard to get started with. + Well, no more. This module will generate basically all the solidity you need to let users basically sign structs and then mostly just think about the structs you have signed in your code. This should really level up your ability to keep more user actions off-chain and gas-free. @@ -20,7 +23,24 @@ As a module, we are exporting typescript definition files, which can help you ge ### As a CLI tool: -You point it at a typeDef file (defined as a CommonJS module, [as seen in sampleTypes.js](./sampleTypes.js)), and it then prints out some solidity to the console. You can then pipe it into a file. +`npm i -g eip712-codegen` or `yarn add -g eip712-codegen` to globally install, and then you can run the command line and pipe the output into a solidity file like so: + +`npx eip712-codegen -i ./yourTypes.js >> TypesFile.sol` + +These are the command line options: + +``` +Options: + --version Show version number [boolean] + -i, --input Input file path [string] [required] + -e, --entryPoints Type names to be used as entry points [array] [required] + -l, --log Enable logging [boolean] + -h, --help Show help [boolean] +``` + +The `input` file is a typeDef file (defined as a CommonJS module, [as seen in sampleTypes.js](./sampleTypes.js)), and it then prints out some solidity to the console. You can then pipe it into a file. The same typedef format is used by signing code for EIP-712, like when suggesting a signature to MetaMask, so this allows you to define these types once and reuse them on the front and backend. + +More examples: input: ```sh @@ -72,38 +92,19 @@ You'll also need to include this one method that defines your DomainHash, which } ``` -IN PROGRESS: This section should be outdated soon. The `--entryPoints` flag is intended to replace this instruction, and once implemented will require simply calling signature verifying methods by name instead of doing any of this: +### Entrypoints -There's one more thing you have to do, this part will require the most thinking. You'll have to write the method that verifies the top-level signatures. I have not written codegen for this yet, because I don't know which types you want to use as your entry points, and there are some design decisions that are up to you here (in particular, *your entrypoint types are your user-facing security enforcement*, but here is a sample method for verifying a `SignedDelegation` as defined in our [sampleTypes.js](./sampleTypes) file: - -```solidity - function verifyDelegationSignature (SignedDelegation memory signedDelegation) public view returns (address) { +The `--entryPoints` flag generates signature verification code for the specified types (which must also be included in the input file). These verification methods will be of the form `verifySigned${YourType}(Signed${YourType} input) returns (address);`. So if you are signing a struct called `Bid` it will generate a method called `verifySignedBid(SignedBid input) returns (address);` - // Break out the struct that was signed: - Delegation memory delegation = signedDelegation.delegation; +Returns an `address` of the account that signed this struct. - // Get the top-level hash of that struct, as defined just below: - bytes32 sigHash = getDelegationTypedDataHash(delegation); - - // The `recover` method comes from the codegen, and will be able to recover from this: - address recoveredSignatureSigner = recover(sigHash, signedDelegation.signature); - return recoveredSignatureSigner; - } - - function getDelegationTypedDataHash(Delegation memory delegation) public view returns (bytes32) { - bytes32 digest = keccak256(abi.encodePacked( - "\x19\x01", - - // The domainHash is derived from your contract name and address above: - domainHash, - - // This last part is calling one of the generated methods. - // It must match the name of the struct that is the `primaryType` of this signature. - GET_DELEGATION_PACKETHASH(delegation) - )); - return digest; - } +The `Signed{Type}` struct format looks like this: +```solidity +{ + bytes signature; + address signer; + YourType message; +} ``` - -From there, you should be good! This library is tested to work with `eth_signTypedData_v4` as implemented in MetaMask. I have not yet tested it with ethers.js or other wallets, but there's a good chance it works for simple types, and a chance it works for arrays and structs as well. - +For regular EOA signatures, the signer should be set to the zero address (`0x0000000000000000000000000000000000000000`). +If the `signer` value is set to anything other than the zero address, rather than recover a signature normally, the contract will execute [EIP-1271 style signature recovery](https://eips.ethereum.org/EIPS/eip-1271) which allows contract accounts to perform custom verification logic allowing them to effectively "sign" messages like an EOA does. From a0af8f2e4136cdd44ee0d4d742552c63eda88b00 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 22:22:13 -0700 Subject: [PATCH 17/19] Version 4.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5131a65..9e287d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eip712-codegen", - "version": "4.0.4", + "version": "4.1.0", "description": "A utility for generating Solidity code for recovering signatures using the EIP-712 signTypedData schema.", "main": "index.js", "bin": { From dc756e92f6db5d1489439ea60e31b60775b0ae7a Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 22:44:16 -0700 Subject: [PATCH 18/19] Add eip1271 test --- contracts/ECRecovery.sol | 43 ++++++++++++++++++++++++++ contracts/EIP1271.sol | 31 +++++++++++++++++++ contracts/MockEIP712Decoder.sol | 2 +- hardhat.config.js | 2 +- test.js | 54 +++++++++++++++++++++++++++++++++ 5 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 contracts/ECRecovery.sol create mode 100644 contracts/EIP1271.sol diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol new file mode 100644 index 0000000..5e9b82b --- /dev/null +++ b/contracts/ECRecovery.sol @@ -0,0 +1,43 @@ +pragma solidity 0.8.19; + +// SPDX-License-Identifier: MIT + +contract ECRecovery { + /** + * @dev Recover signer address from a message by using their signature + * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. + * @param sig bytes signature, the signature is generated using web3.eth.sign() + */ + function recover(bytes32 hash, bytes memory sig) + internal + pure + returns (address) + { + bytes32 r; + bytes32 s; + uint8 v; + + //Check the signature length + if (sig.length != 65) { + return (address(0)); + } + + // Divide the signature in r, s and v variables + assembly { + r := mload(add(sig, 32)) + s := mload(add(sig, 64)) + v := byte(0, mload(add(sig, 96))) + } + // Version of signature should be 27 or 28, but 0 and 1 are also possible versions + if (v < 27) { + v += 27; + } + + // If the version is correct return the signer address + if (v != 27 && v != 28) { + return (address(0)); + } else { + return ecrecover(hash, v, r, s); + } + } +} diff --git a/contracts/EIP1271.sol b/contracts/EIP1271.sol new file mode 100644 index 0000000..870b42e --- /dev/null +++ b/contracts/EIP1271.sol @@ -0,0 +1,31 @@ +pragma solidity 0.8.19; +import "./ECRecovery.sol"; + +//SPDX-License-Identifier: MIT + +contract EIP1271 is ECRecovery { + mapping(address => bool) isOwner; + + constructor() { + isOwner[msg.sender] = true; + } + + function addOwner(address _owner) public { + isOwner[_owner] = true; + } + + /** + * @notice Verifies that the signer is the owner of the signing contract. + */ + function isValidSignature(bytes32 _hash, bytes calldata _signature) + external + view + returns (bytes4) + { + if (isOwner[recover(_hash, _signature)]) { + return 0x1626ba7e; + } else { + return 0xffffffff; + } + } +} diff --git a/contracts/MockEIP712Decoder.sol b/contracts/MockEIP712Decoder.sol index fdb0f84..3b39af3 100644 --- a/contracts/MockEIP712Decoder.sol +++ b/contracts/MockEIP712Decoder.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.13; +pragma solidity ^0.8.19; import "./EIP712Decoder.sol"; diff --git a/hardhat.config.js b/hardhat.config.js index 04f4273..90f4ce4 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -1,5 +1,5 @@ require("@nomiclabs/hardhat-ethers"); module.exports = { - solidity: "0.8.13", + solidity: "0.8.19", }; diff --git a/test.js b/test.js index 857ee24..7af9783 100644 --- a/test.js +++ b/test.js @@ -139,6 +139,60 @@ describe('EIP712Decoder', function () { }); }); +describe('EIP-1271', () => { + let contract, eip1271, owner, other, accounts, signer, typedData, eip712Decoder, privateKey, wallet; + + beforeEach(async () => { + // Compile the contract using Hardhat + await hre.run('compile'); + + // Set up a ganache provider with the generated Solidity code + const ganacheProvider = ganache.provider({}) + const provider = new ethers.providers.Web3Provider(ganacheProvider); + const mnemonic = ganacheProvider.options.mnemonic; + wallet = ethers.Wallet.fromMnemonic(mnemonic); + privateKey = wallet.privateKey; + accounts = await provider.listAccounts(); + signer = provider.getSigner(accounts[0]); + + // Load up the compiled contract artifact + const EIP712Decoder = await hre.artifacts.readArtifact('MockEIP712Decoder'); + + // Deploy the contract + const EIP712DecoderFactory = new ethers.ContractFactory(EIP712Decoder.abi, EIP712Decoder.bytecode, signer); + contract = await EIP712DecoderFactory.deploy([1]); + message.domain.verifyingContract = contract.address; + await contract.deployed(); + + // Create the typed data for testing + typedData = JSON.parse(JSON.stringify(message)); + typedData.domain.verifyingContract = contract.address; + + // Deploy the EIP-1271 contract + const EIP1271 = await hre.artifacts.readArtifact('EIP1271'); + const EIP1271ContractFactory = new ethers.ContractFactory(EIP1271.abi, EIP1271.bytecode, signer); + const EIP1271Contract = await EIP1271ContractFactory.deploy([]); + eip1271 = await EIP1271Contract.deployed(); + await eip1271.deployed(); + + await eip1271.addOwner(wallet.address); + }); + + describe('contract account signature recovery', () => { + it('should recover the correct signer', async () => { + // Sign the typed data using eth-sig-util + const signedPerson = signStruct(privateKey); + signedPerson.signer = eip1271.address; + + // Call the verifySigned method with the EIP-1271 contract address as the signer + const result = await contract.verifySignedPerson(signedPerson); + + // Verify that the returned address is equal to the EIP-1271 contract address + expect(result).to.equal(eip1271.address); + }); + }); +}); + function signStruct (privateKey) { const signature = sigUtil.signTypedData({ privateKey: fromHexString(privateKey.indexOf('0x') === 0 ? privateKey.substring(2) : privateKey), From 9e9d3f51e19954eb10b5ed622b0b02f1591d2552 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 14 Mar 2023 22:45:23 -0700 Subject: [PATCH 19/19] Add more basic encodable types Fixes #10 --- index.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/index.ts b/index.ts index 4da395c..9b3a998 100644 --- a/index.ts +++ b/index.ts @@ -174,7 +174,25 @@ function generatePacketHashGetters (types, typeName, fields, packetHashGetters: } function getEncodedValueFor (field) { - const basicEncodableTypes = ['address', 'bool', 'bytes32', 'int', 'uint', 'uint256']; + const basicEncodableTypes = [ + 'address', + 'bool', + 'string', + 'int', + 'uint', + 'int8', + 'uint8', + 'int16', + 'uint16', + 'int256', + 'uint256', + 'bytes32', + 'bytes16', + 'bytes8', + 'bytes4', + 'bytes2', + 'bytes1', + ]; const hashedTypes = ['bytes', 'string']; if (basicEncodableTypes.includes(field.type)) { return `_input.${field.name}`;